public void WhisperTheGameIsTakingGuesses_WhenTakingGuesses_GivenUserIsBroadcaster() { var sut = new GuessGame(GuessGameState.OpenTakingGuesses); Mock <IChatService> chatserviceMock = new Mock <IChatService>(); chatserviceMock.Setup(x => x.WhisperMessage(It.IsAny <string>(), It.IsAny <string>())); var cmd = new GuessGameCommand() { ArgumentsAsList = new List <string>() { //"", }, ChatUser = new ChatUser() { DisplayName = "User1", Username = "******", IsBroadcaster = true } }; sut.Help(chatserviceMock.Object, cmd); chatserviceMock.Verify(service => service.WhisperMessage( It.Is <string>(m => m == "user1"), It.Is <string>(m => m == "The time-guessing game is currently taking guesses. Guess a time with !guess 1:23, Your last guess will stand, and you can check your guess with !guess mine, OR close the guesses with !guess close")), Times.Once); }
public void WhisperNextAvailableCommands_WhenClosed_GivenUserIsBroadcasterOrModerator() { var sut = new GuessGame(GuessGameState.GuessesClosed); Mock <IChatService> chatserviceMock = new Mock <IChatService>(); chatserviceMock.Setup(x => x.BroadcastMessageOnChannel(It.IsAny <string>())); chatserviceMock.Setup(x => x.WhisperMessage(It.IsAny <string>(), It.IsAny <string>())); var cmd = new GuessGameCommand() { ArgumentsAsList = new List <string>() { //"", }, ChatUser = new ChatUser() { DisplayName = "User1", Username = "******", IsBroadcaster = true } }; sut.Help(chatserviceMock.Object, cmd); chatserviceMock.Verify(service => service.BroadcastMessageOnChannel(It.IsAny <string>()), Times.Never); chatserviceMock.Verify(service => service.WhisperMessage(It.IsAny <string>(), It.IsAny <string>()), Times.Once); }
public void BroadCastTheGameIsTakingGuesses_WhenTakingGuesses_GivenUserIsNotBroadcasterOrModerator() { var sut = new GuessGame(GuessGameState.OpenTakingGuesses); Mock <IChatService> chatserviceMock = new Mock <IChatService>(); chatserviceMock.Setup(x => x.BroadcastMessageOnChannel(It.IsAny <string>())); var cmd = new GuessGameCommand() { ArgumentsAsList = new List <string>() { //"", }, ChatUser = new ChatUser() { DisplayName = "User1", Username = "******" } }; sut.Help(chatserviceMock.Object, cmd); chatserviceMock.Verify(service => service.BroadcastMessageOnChannel( It.Is <string>(m => m == "The time-guessing game is currently taking guesses. Guess a time with !guess 1:23 Your last guess will stand, and you can check your guess with !guess mine")), Times.Once); }
public void WhisperTheGameIsNotStarted_WhenCommandIsTriggeredWihoutArgs_GivenStateIsNotStarted() { var sut = new GuessGame(); Mock <IChatService> chatserviceMock = new Mock <IChatService>(); chatserviceMock.Setup(x => x.WhisperMessage(It.IsAny <string>(), It.IsAny <string>())); var cmd = new GuessGameCommand() { ArgumentsAsList = new List <string>() { //"", }, ChatUser = new ChatUser() { DisplayName = "User1", Username = "******" } }; sut.Help(chatserviceMock.Object, cmd); chatserviceMock.Verify(service => service.WhisperMessage( It.Is <string>(u => u == "User1"), It.Is <string>(m => m == "The time-guessing game is not currently running. To open the game for guesses, execute !guess open")), Times.Once); }
public void GamePlay() { var sut = new GuessGame(); Assert.Equal(GuessGameState.NotStarted, sut.CurrentState()); sut.Help(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "help" }, ChatUser = new ChatUser() { IsModerator = true, IsBroadcaster = false, DisplayName = "bravecobra", Username = "******" } }); Assert.Equal(GuessGameState.NotStarted, sut.CurrentState()); sut.Open(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "open" }, ChatUser = new ChatUser() { IsModerator = true, IsBroadcaster = false, DisplayName = "bravecobra", Username = "******" } }); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); sut.Guess(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "1:23" }, ChatUser = new ChatUser() { IsModerator = true, IsBroadcaster = false, DisplayName = "bravecobra", Username = "******" } }); sut.Guess(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "mine" }, ChatUser = new ChatUser() { IsModerator = true, IsBroadcaster = false, DisplayName = "bravecobra", Username = "******" } }); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); sut.Guess(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "1:22" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = true, DisplayName = "csharpfritz", Username = "******" } }); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); sut.Guess(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "1:61" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = false, DisplayName = "someone", Username = "******" } }); sut.Mine(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "mine" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = false, DisplayName = "someone", Username = "******" } }); sut.Guess(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "1:41" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = false, DisplayName = "someone", Username = "******" } }); sut.Mine(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "mine" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = false, DisplayName = "someone", Username = "******" } }); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); sut.Guess(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "1:25" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = false, DisplayName = "someone", Username = "******" } }); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); sut.Close(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "close" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = true, DisplayName = "csharpfritz", Username = "******" } }); Assert.Equal(GuessGameState.GuessesClosed, sut.CurrentState()); sut.Open(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "open" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = true, DisplayName = "csharpfritz", Username = "******" } }); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); sut.Close(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "close" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = true, DisplayName = "csharpfritz", Username = "******" } }); Assert.Equal(GuessGameState.GuessesClosed, sut.CurrentState()); sut.Reset(new StubChat(_output), new GuessGameCommand() { ArgumentsAsList = new List <string>() { "reset", "1:23" }, ChatUser = new ChatUser() { IsModerator = false, IsBroadcaster = true, DisplayName = "csharpfritz", Username = "******" } }); Assert.Equal(GuessGameState.NotStarted, sut.CurrentState()); }