예제 #1
0
        public void Handles_Should_Choose_A_Position()
        {
            var context       = new MockIntelligenceContext();
            var currentPlayer = new MockPlayer();
            var player        = new MockPlayer();
            var board         = new MockBoard {
                Size = 3
            };
            var game = new MockGame {
                Board   = board,
                Players = new List <IPlayer> {
                    currentPlayer, player
                },
                CurrentPlayer = currentPlayer
            }.IsOverStubbedToReturn(false);
            var newContext     = new MockIntelligenceContext();
            var contextFactory = new MockIntelligenceContextFactory().CreateStubbedToReturn(newContext);

            var state = BuildPlayer1TurnState(game, contextFactory, context);

            state.Handle();

            game.VerifyMakeMoveCalled(context);
            game.VerifySwitchPlayerCalled();
            contextFactory.VerifyCreatedCalled(game);
        }
예제 #2
0
        public void Returns_Board_Coordinate_With_Context()
        {
            var context         = new MockIntelligenceContext();
            var boardCoordinate = new BoardCoordinate(1, 1);
            var player1         = new MockPlayer().GetBestMoveStubbedToReturn(boardCoordinate);
            var players         = new List <IPlayer> {
                player1
            };
            var board = new MockBoard {
                Size = 3
            };
            var game = BuildGame(board, players);

            game.MakeMove(context);

            player1.VerifyGetBestMoveCalled(context);
            player1.VerifyChoosePositionCalled(board, boardCoordinate.ToPosition(board.Size));
        }