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); }
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)); }