public void CheckIfGetGameStateReturnsATie()
        {
            var board = new Board(3);

            board.UpdateSquare(new Coordinate {
                X = 0, Y = 0
            }, 'O');
            board.UpdateSquare(new Coordinate {
                X = 1, Y = 0
            }, 'X');
            board.UpdateSquare(new Coordinate {
                X = 2, Y = 0
            }, 'X');
            board.UpdateSquare(new Coordinate {
                X = 0, Y = 1
            }, 'X');
            board.UpdateSquare(new Coordinate {
                X = 1, Y = 1
            }, 'X');
            board.UpdateSquare(new Coordinate {
                X = 2, Y = 1
            }, 'O');
            board.UpdateSquare(new Coordinate {
                X = 0, Y = 2
            }, 'O');
            board.UpdateSquare(new Coordinate {
                X = 1, Y = 2
            }, 'O');
            board.UpdateSquare(new Coordinate {
                X = 2, Y = 2
            }, 'X');

            var winDecider = new WinDecider();
            var actual     = winDecider.GetGameState(board);
            var expected   = GameState.Tie;

            Assert.Equal(expected, actual);
        }
        public void CheckIfGetGameStateReturnsLeftDiagonalWin()
        {
            var board  = new Board(3);
            var coord1 = new Coordinate {
                X = 2, Y = 0
            };
            var coord2 = new Coordinate {
                X = 1, Y = 1
            };
            var coord3 = new Coordinate {
                X = 0, Y = 2
            };

            board.UpdateSquare(coord1, 'X');
            board.UpdateSquare(coord2, 'X');
            board.UpdateSquare(coord3, 'X');

            var winDecider = new WinDecider();
            var actual     = winDecider.GetGameState(board);
            var expected   = GameState.DiagonalWin;

            Assert.Equal(expected, actual);
        }