Exemplo n.º 1
0
        public void MakeMoveShouldMakeWinningMoveForX()
        {
            //arrange
            GameMock
            .Setup(a => a.GameIsOver)
            .Returns(false);

            GameMock
            .Setup(a => a.GameBoardString)
            .Returns(AGameBoardString);

            GameMock
            .Setup(a => a.CurrentPlayer)
            .Returns(Player.X);

            var moveResponses = new MoveResponse[]
            {
                new MoveResponse()
                {
                    Response = Move.Northern,
                    Outcome  = GameState.XWin,
                    Board    = "_________",
                    Player   = Player.X
                },
                new MoveResponse()
                {
                    Response = Move.Center,
                    Outcome  = GameState.OWin,
                    Board    = "_________",
                    Player   = Player.X
                },
                new MoveResponse()
                {
                    Response = Move.Southern,
                    Outcome  = GameState.Tie,
                    Board    = "_________",
                    Player   = Player.X
                }
            };

            MoveDataAccessMock
            .Setup(a => a.FindMoveResponses(AGameBoardString, Player.X))
            .Returns(moveResponses);

            RandomMock
            .Setup(a => a.Next(It.IsAny <int>()))
            .Returns(0);

            //act
            OmniscientGod.MakeMove(GameMock.Object);

            //assert
            GameMock
            .Verify(a => a.Move(Move.Northern), Times.Once());
        }
Exemplo n.º 2
0
        public void ShouldFindMoveResults()
        {
            //arrange
            GameMock
            .Setup(a => a.GameBoardString)
            .Returns(AGameBoardString);

            GameMock
            .Setup(a => a.CurrentPlayer)
            .Returns(Player.X);

            var moveResponses = new MoveResponse[]
            {
                new MoveResponse()
                {
                    Response = Move.Northern,
                    Outcome  = GameState.XWin,
                    Board    = "_________",
                    Player   = Player.X
                },
                new MoveResponse()
                {
                    Response = Move.Center,
                    Outcome  = GameState.OWin,
                    Board    = "_________",
                    Player   = Player.X
                },
                new MoveResponse()
                {
                    Response = Move.Southern,
                    Outcome  = GameState.Tie,
                    Board    = "_________",
                    Player   = Player.X
                }
            };

            MoveDataAccessMock
            .Setup(a => a.FindMoveResponses(AGameBoardString, Player.X))
            .Returns(moveResponses);

            //act
            var results = OmniscientGod.FindMoveResults(GameMock.Object);

            //assert
            var expectedMoveResults = new MoveResult[]
            {
                new MoveResult(Move.Northern, GameState.XWin),
                new MoveResult(Move.Center, GameState.OWin),
                new MoveResult(Move.Southern, GameState.Tie)
            };

            results.ShouldAllBeEquivalentTo(expectedMoveResults);
        }