public void TestUpdateLevel() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = (StreetField)game.Fields[1]; StreetField field2 = (StreetField)game.Fields[2]; StreetField field3 = (StreetField)game.Fields[3]; field1.Buy(game.Players[0]); Assert.That(() => field1.LevelUp(game.Players[0], 5), Throws.InvalidOperationException); field2.Buy(game.Players[0]); field1.LevelUp(game.Players[0], 5); Assert.That(field1.Level, Is.EqualTo(5)); Assert.That(game.Players[0].Money, Is.EqualTo(1500 - 2 * 60 - 5 * 50)); Assert.That(() => field3.LevelUp(game.Players[0], 5), Throws.InvalidOperationException); Assert.That(() => field1.LevelUp(game.Players[1], 5), Throws.ArgumentException); Assert.That(() => field1.LevelUp(game.Players[0], 7), Throws.ArgumentException); }
public void TestPayRent() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = (StreetField)game.Fields[1]; StreetField field2 = (StreetField)game.Fields[2]; StreetField field3 = (StreetField)game.Fields[3]; field1.Buy(game.Players[0]); field2.Buy(game.Players[0]); field1.LevelUp(game.Players[0], 5); game.SetPlayerPos(game.Players[1], pos: 1); Assert.That(game.Players[1].Money, Is.EqualTo(1500 - 250)); Assert.That(field3.RentToPay, Is.EqualTo(0)); }
public void TestSellHouse() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); StreetField field2 = ((StreetField)game.Fields[2]); field1.Buy(game.Players[0]); field2.Buy(game.Players[0]); field1.LevelUp(game.Players[0], 5); Assert.That(((StreetField)game.Fields[1]).Level, Is.EqualTo(5)); field1.SellHouse(game.Players[0], 5); Assert.That(field1.Level, Is.EqualTo(0)); Assert.That(() => field1.SellHouse(game.Players[1], 1), Throws.InvalidOperationException); Assert.That(() => field1.SellHouse(game.Players[0], 1), Throws.InvalidOperationException); }
private static void LevelUp(Game game) { for (int s = 0; s < game.CurrentPlayer.OwnerShip.Count(); s++) { StreetField street = (StreetField)game.CurrentPlayer.OwnerShip[s]; Console.WriteLine(s + ". " + street.Name + "Level " + street.Level + ", Costs: " + street.Cost.House); } Console.Write("StreetNum: "); int streetNum = int.Parse(Console.ReadLine()); StreetField streetToUpdate = (StreetField)game.CurrentPlayer.OwnerShip[streetNum]; Console.Write("Level: "); int level = int.Parse(Console.ReadLine()); streetToUpdate.LevelUp(game.CurrentPlayer, level); }
public void TestStreetRepairCard() { Game game = new Game(new Player[] { new Player("X"), new Player("Y"), new Player("Z") }); StreetField field1 = (StreetField)game.Fields[1]; StreetField field2 = (StreetField)game.Fields[2]; field1.Buy(game.Players[0]); field2.Buy(game.Players[0]); field1.LevelUp(game.Players[0], 5); field2.LevelUp(game.Players[0], 4); StreetRepairCard card = new StreetRepairCard("", 50, 100, game); card.UseCard(game.Players[0]); Assert.That(game.Players[0].Money, Is.EqualTo(1500 - 2 * 60 - 9 * 50 - 4 * 50 - 1 * 100)); }
public void PlayerIsBankrupt() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); StreetField field2 = ((StreetField)game.Fields[2]); StreetField field3 = ((StreetField)game.Fields[3]); StreetField field4 = ((StreetField)game.Fields[4]); game.Players[0].GetMoney(20000); game.Players[1].PayMoney(1500); field1.Buy(game.Players[0]); field2.Buy(game.Players[0]); field3.Buy(game.Players[0]); field4.Buy(game.Players[0]); field1.LevelUp(game.Players[0], 5); field2.LevelUp(game.Players[0], 5); field3.LevelUp(game.Players[0], 5); field4.LevelUp(game.Players[0], 5); Assert.That(() => game.Fields[4].OnEnter(game.Players[1]), Throws.TypeOf(typeof(BankruptException))); }
public void TestTakeMortage() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = (StreetField)game.Fields[1]; StreetField field2 = (StreetField)game.Fields[2]; StreetField field3 = (StreetField)game.Fields[3]; field1.Buy(game.Players[0]); field1.TakeMortage(game.Players[0]); Assert.That(field1.IsMortage, Is.EqualTo(true)); Assert.That(game.Players[0].Money, Is.EqualTo(1500 - 60 + 30)); game.SetPlayerPos(game.Players[1], 1); Assert.That(game.Players[1].Money, Is.EqualTo(1500)); Assert.That(() => field3.TakeMortage(game.Players[1]), Throws.InvalidOperationException); Assert.That(() => field1.TakeMortage(game.Players[0]), Throws.InvalidOperationException); Assert.That(() => field1.TakeMortage(game.Players[1]), Throws.InvalidOperationException); field2.Buy(game.Players[0]); field1.LevelUp(game.Players[0], 5); Assert.That(() => field1.TakeMortage(game.Players[0]), Throws.InvalidOperationException); }