/* * MumbleDJ * By Matthieu Grieger * commands/toggleshuffle_test.go * Copyright (c) 2016 Matthieu Grieger (MIT License) */ package commands import ( "testing" "github.com/matthieugrieger/mumbledj/bot" "github.com/spf13/viper" "github.com/stretchr/testify/suite" ) type ToggleShuffleCommandTestSuite struct { Command ToggleShuffleCommand suite.Suite } func (suite *ToggleShuffleCommandTestSuite) SetupSuite() { DJ = bot.NewMumbleDJ() viper.Set("commands.toggleshuffle.aliases", []string{"toggleshuffle", "ts"}) viper.Set("commands.toggleshuffle.description", "toggleshuffle") viper.Set("commands.toggleshuffle.is_admin", true) } func (suite *ToggleShuffleCommandTestSuite) TestAliases() { suite.Equal([]string{"toggleshuffle", "ts"}, suite.Command.Aliases()) } func (suite *ToggleShuffleCommandTestSuite) TestDescription() { suite.Equal("toggleshuffle", suite.Command.Description()) } func (suite *ToggleShuffleCommandTestSuite) TestIsAdminCommand() { suite.True(suite.Command.IsAdminCommand()) } func (suite *ToggleShuffleCommandTestSuite) TestExecuteWhenShuffleIsOff() { viper.Set("queue.automatic_shuffle_on", false) message, isPrivateMessage, err := suite.Command.Execute(nil) suite.NotEqual("", message, "A message should be returned.") suite.False(isPrivateMessage, "This should not be a private message.") suite.Nil(err, "No error should be returned.") suite.True(viper.GetBool("queue.automatic_shuffle_on"), "Automatic shuffling should now be on.") } func (suite *ToggleShuffleCommandTestSuite) TestExecuteWhenShuffleIsOn() { viper.Set("queue.automatic_shuffle_on", true) message, isPrivateMessage, err := suite.Command.Execute(nil) suite.NotEqual("", message, "A message should be returned.") suite.False(isPrivateMessage, "This should not be a private message.") suite.Nil(err, "No error should be returned.") suite.False(viper.GetBool("queue.automatic_shuffle_on"), "Automatic shuffling should now be off.") } func TestToggleShuffleCommandTestSuite(t *testing.T) { suite.Run(t, new(ToggleShuffleCommandTestSuite)) }