Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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());
        }