예제 #1
0
        public GameServiceTests()
        {
            var cpuPlayer   = new CPUPlayerFirstAvailableSpot();
            var gameRepo    = new GameRepositoryMemoryInstance();
            var gameBuilder = new GameBuilder();

            var moveValidationListMoq = new Moq.Mock <IMoveValidationList>();

            moveValidationListMoq
            .Setup(m => m.IsValid)
            .Returns(true);

            var judge = new Judge(new EndGameChecker(), moveValidationListMoq.Object);

            sut = new GameService(gameRepo, judge, gameBuilder, cpuPlayer);
        }
예제 #2
0
        public void MakeMove_FirstCellTaken_ShouldPut_O_InFirstRow2ndColumn()
        {
            // Arrange
            var sut   = new CPUPlayerFirstAvailableSpot();
            var board = new Board(3);

            board[0, 0] = Symbols.X;
            const int expectedRow    = 0;
            const int expectedColumn = 1;

            // Act
            var cpuMove = sut.MakeMove(board, Symbols.O);

            // Assert
            Assert.Equal(expectedRow, cpuMove.Row);
            Assert.Equal(expectedColumn, cpuMove.Column);
        }