public void GivenBoardWithWinOnDiagonalBottomLeftTopRight_WhenVerifyIsCalled_ThenGameCompleteShouldBeTrue()
        {
            // Arrange
            var endGameStrategy = CreateEndGameStrategy();
            var board           = BoardFactory.CreateBoardWithWinOnDiagonalBottomLeftTopRight();

            // Act
            var result = endGameStrategy.Verify(board);

            // Assert
            result.isGameComplete.Should().BeTrue();
        }
        public void GivenBoardWithEqualOutCome_WhenVerifyIsCalled_ThenPlayerShouldBe0()
        {
            // Arrange
            var endGameStrategy = CreateEndGameStrategy();
            var board           = BoardFactory.CreateBoardWithNoWin();

            // Act
            var result = endGameStrategy.Verify(board);

            // Assert
            result.winner.Should().Be(0);
        }
        public void GivenBoardWithWinOnFirstColumn_WhenVerifyIsCalled_ThenGameCompleteShouldBeTrue()
        {
            // Arrange
            var endGameStrategy = CreateEndGameStrategy();
            var board           = BoardFactory.CreateBoardWithWinOnFirstColumn();

            // Act
            var result = endGameStrategy.Verify(board);

            // Assert
            result.isGameComplete.Should().BeTrue();
        }
        public void GivenEmptyBoard_WhenVerifyIsCalled_ThenGameCompleteShouldBeFalse()
        {
            // Arrange
            var endGameStrategy = CreateEndGameStrategy();
            var board           = BoardFactory.CreateEmptyBoard();

            // Act
            var result = endGameStrategy.Verify(board);

            // Assert
            result.isGameComplete.Should().BeFalse();
        }