public void PawnPromoted_GoodWorkflow_Success() { LocalChessManager = new ChessManager(); CurrentGid = LocalChessManager.GetNewGame(); int nextPlayer; nextPlayer = Play(1, 1, 2, 1, 3).NextPlayerToPlay; nextPlayer = Play(2, 1, 7, 1, 5).NextPlayerToPlay; nextPlayer = Play(1, 2, 1, 3, 3).NextPlayerToPlay; nextPlayer = Play(2, 1, 5, 1, 4).NextPlayerToPlay; nextPlayer = Play(1, 3, 3, 1, 4).NextPlayerToPlay; nextPlayer = Play(2, 1, 8, 1, 5).NextPlayerToPlay; nextPlayer = Play(1, 1, 4, 3, 3).NextPlayerToPlay; nextPlayer = Play(2, 1, 5, 2, 5).NextPlayerToPlay; nextPlayer = Play(1, 1, 3, 1, 4).NextPlayerToPlay; nextPlayer = Play(2, 2, 5, 3, 5).NextPlayerToPlay; nextPlayer = Play(1, 1, 4, 1, 5).NextPlayerToPlay; nextPlayer = Play(2, 3, 5, 2, 5).NextPlayerToPlay; nextPlayer = Play(1, 1, 5, 1, 6).NextPlayerToPlay; nextPlayer = Play(2, 2, 5, 3, 5).NextPlayerToPlay; nextPlayer = Play(1, 1, 6, 1, 7).NextPlayerToPlay; nextPlayer = Play(2, 3, 5, 2, 5).NextPlayerToPlay; var grid = Play(1, 1, 7, 1, 8); Assert.AreEqual(9, grid.NumberLines); var extraPawn = grid.PawnLocations.Where(p => p.Coord.y == 9); Assert.AreEqual(4, extraPawn.Count()); Assert.AreEqual(1, grid.MoveNumber); Assert.AreEqual(1, grid.NextPlayerToPlay); //Choice of taking ... A queen! Grid ToReturn = LocalChessManager.Play(CurrentGid, new Move() { PlayerNumber = 1, Positions = new List <Pawn> { new Pawn("", 1, 9) } }); CurrentGid = ToReturn; nextPlayer = Play(2, 2, 5, 3, 5).NextPlayerToPlay; Assert.AreEqual(1, grid.NextPlayerToPlay); grid = Play(1, 1, 8, 1, 2); Assert.AreEqual(2, grid.NextPlayerToPlay); var newQueen = grid.PawnLocations.Where(p => p.Coord.x == 1 && p.Coord.y == 2).FirstOrDefault(); Assert.IsNotNull(newQueen); }