public void TestMockedChessOverrides() { var chess = new MockedChess(); Assert.Empty(chess.AllMoves(true)); Assert.Empty(chess.AllMoves(false)); Assert.Empty(chess.AvailableMoves(true)); Assert.Empty(chess.AvailableMoves(false)); Assert.False(chess.Process( new Move( new Square(Files.a, Ranks.one), new Square(Files.a, Ranks.one), MoveType.Normal), out IPiece piece)); Assert.Null(piece); }
public void TestChessBoard() { IReadOnlyDictionary <Square, IPiece> position = new Dictionary <Square, IPiece>() { { new Square(Files.a, Ranks.one), new MockedPiece(true) }, { new Square(Files.b, Ranks.two), new MockedPiece(false) }, { new Square(Files.c, Ranks.three), new MockedPiece(true) }, { new Square(Files.d, Ranks.four), new MockedPiece(false) }, { new Square(Files.e, Ranks.five), new MockedPiece(true) }, { new Square(Files.f, Ranks.six), new MockedPiece(false) }, { new Square(Files.g, Ranks.seven), new MockedPiece(true) }, { new Square(Files.h, Ranks.eight), new MockedPiece(false) }, }; IChess chess = new MockedChess(position); Assert.Empty(chess.MoveEntries); Assert.Empty(chess.AvailableMoves(false)); Assert.Equal(8, chess.Position.Count); Assert.All( position.Keys, s => { Assert.NotEqual(position[s], chess.Position[s]); Assert.True(chess.Position[s] is MockedPiece); if ((int)s.File % 2 == 0) { Assert.False(chess.Position[s].Color); } else { Assert.True(chess.Position[s].Color); } } ); }