public void SetTheGameToNotStartedState_GivenUserIsBroadcaster() { var sut = new GuessGame(GuessGameState.GuessesClosed); Mock <IChatService> chatService = new Mock <IChatService>(); chatService.Setup(x => x.BroadcastMessageOnChannel(It.IsAny <string>())); var cmd = new GuessGameCommand() { ArgumentsAsList = new List <string>() { "reset", "1:23" }, ChatUser = new ChatUser() { DisplayName = "User1", Username = "******", IsBroadcaster = true } }; sut.Reset(chatService.Object, cmd); Assert.Equal(GuessGameState.NotStarted, sut.CurrentState()); Assert.Equal(0, sut.GuessCount()); //chatService.Verify(service => service.BroadcastMessageOnChannel(It.Is<string>(s => s == "user1 has not guessed yet!")), Times.Once()); }
public void BroadcastInvalidGuess(string guess) { 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>() { guess, }, ChatUser = new ChatUser() { IsBroadcaster = false, IsModerator = false, DisplayName = "User1", Username = "******" } }; sut.Guess(chatserviceMock.Object, cmd); chatserviceMock.Verify(x => x.BroadcastMessageOnChannel(It.Is <string>(s => s == "Sorry user1, guesses are only accepted in the format !guess 1:23")), Times.Once); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); Assert.Equal(0, sut.GuessCount()); }
public void AddTheValidGuessOfAUser() { 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>() { "1:23", }, ChatUser = new ChatUser() { IsBroadcaster = false, IsModerator = false, DisplayName = "User1", Username = "******" } }; sut.Guess(chatserviceMock.Object, cmd); chatserviceMock.Verify(x => x.BroadcastMessageOnChannel(It.IsAny <string>()), Times.Never); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); Assert.Equal(1, sut.GuessCount()); }
public void BroadcastWhenAlreadyGuessedByOtherUser() { 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>() { "1:23", }, ChatUser = new ChatUser() { IsBroadcaster = false, IsModerator = false, DisplayName = "User1", Username = "******" } }; sut.Guess(chatserviceMock.Object, cmd); cmd = new GuessGameCommand() { ArgumentsAsList = new List <string>() { "1:23", }, ChatUser = new ChatUser() { IsBroadcaster = false, IsModerator = false, DisplayName = "User2", Username = "******" } }; sut.Guess(chatserviceMock.Object, cmd); chatserviceMock.Verify(x => x.BroadcastMessageOnChannel(It.Is <string>(s => s == "Sorry user2, user1 already guessed 00:01:23")), Times.Once); Assert.Equal(GuessGameState.OpenTakingGuesses, sut.CurrentState()); Assert.Equal(1, sut.GuessCount()); }