public void DetermineWinner()
 {
     if (GamesFinished)
     {
         Winner = WinnerCalculator.DetermineWinner(FirstGame, SecondGame);
         if (Winner == null)
         {
             IsDraw = true;
         }
     }
 }
            public void GivenReverseDiagonalWin_ReturnWinnerTrue()
            {
                var currentBoard = new Piece[, ]
                {
                    { Piece.X, Piece.O, Piece.X },
                    { Piece.O, Piece.X, Piece.O },
                    { Piece.X, Piece.Empty, Piece.O }
                };

                var player = new Player()
                {
                    Symbol = Piece.X, Row = 0, Column = 2
                };

                WinnerCalculator winnerCalculator = new WinnerCalculator(player, currentBoard);

                Assert.True(winnerCalculator.IsWinner);
            }
            public void GivenFullBoard_ReturnWinnerIsEqualToFalse()
            {
                var currentBoard = new Piece[, ]
                {
                    { Piece.X, Piece.X, Piece.O },
                    { Piece.O, Piece.O, Piece.X },
                    { Piece.X, Piece.O, Piece.X }
                };

                var player = new Player()
                {
                    Symbol = Piece.X
                };

                WinnerCalculator winnerCalculator = new WinnerCalculator(player, currentBoard);

                Assert.AreEqual(false, winnerCalculator.IsWinner);
            }
            public void GivenSingleMove_ReturnWinnerIsEqualToFalse()
            {
                var currentBoard = new Piece[, ]
                {
                    { Piece.X, Piece.Empty, Piece.Empty },
                    { Piece.Empty, Piece.Empty, Piece.Empty },
                    { Piece.Empty, Piece.Empty, Piece.Empty }
                };

                var player = new Player()
                {
                    Symbol = Piece.X, Row = 0, Column = 0
                };

                WinnerCalculator winnerCalculator = new WinnerCalculator(player, currentBoard);

                Assert.AreEqual(false, winnerCalculator.IsWinner);
            }