68 lines
2 KiB
Go
68 lines
2 KiB
Go
/*
|
|
* 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))
|
|
}
|