public static void TestGetValidMovesWhitePawnPromotion()
{
Piece[][] board = new Piece[8][]
{
new[] { kw, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, pw },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, kb, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o }
};
ChessGame cb = new ChessGame(board, Player.White);
ReadOnlyCollection<Move> actual = cb.GetValidMoves(new Position(File.H, 7));
List<Move> expected = new List<Move>()
{
new Move("H7", "H8", Player.White, 'Q'),
new Move("H7", "H8", Player.White, 'r'),
new Move("H7", "H8", Player.White, 'B'),
new Move("H7", "H8", Player.White, 'n')
};
Assert.AreEqual(expected.Count, actual.Count);
foreach (Move move in expected)
{
Assert.True(actual.Contains(move), "Actual does not contain " + move.ToString());
}
}