public static void TestApplyMoveBlackPawn_PromotionToQueen()
{
Piece[][] board = new Piece[8][]
{
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 },
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 },
new[] { o, o, o, kw, o, kb, pb, o },
new[] { o, o, o, o, o, o, o, o }
};
Move move = new Move(new Position(File.G, 2), new Position(File.G, 1), Player.Black, 'Q');
ChessGame cb = new ChessGame(board, Player.Black);
Assert.AreNotEqual(cb.ApplyMove(move, false), MoveType.Invalid, "move should be valid");
Piece[][] expected = new Piece[8][]
{
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 },
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 },
new[] { o, o, o, kw, o, kb, o, o },
new[] { o, o, o, o, o, o, qb, o }
};
Assert.AreEqual(expected, cb.GetBoard());
}