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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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());
        }