public void CanMoveColonists() { Game.Players.ForEach(p => { var tile = new Quarry(); tile.AddWorker(new Colonist()); p.Plant(tile); p.Build(new SmallMarket()); }); var action = new MoveColonist { FromIndex = 1, ToIndex = 0, IsMoveFromTile = true, IsMoveToTile = false }; Game.Players.ForEach(p => CanExecuteActionMultiple(action, p)); }
private void CanUseQuarry_ToBuild <T>(int expectedDiscount, IPlayer player, int quarryCount) where T : IBuilding { const int playerFunds = 21; player.Doubloons = playerFunds; for (var i = 0; i < quarryCount; i++) { var quarry = new Quarry(); quarry.AddWorker(new Colonist()); player.Plant(quarry); } var building = Game.Buildings.OfType <T>().First(); var index = Game.Buildings.IndexOf(building); var action = new Build { BuildingIndex = index }; Role.Execute(action, player); Assert.Equal(playerFunds - building.Cost + expectedDiscount, player.Doubloons); }