public void TestBuyInAuction() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); field1.BuyInAuction(game.Players[0], 20); Assert.That(game.Players[0].OwnerShip[0].Name, Is.EqualTo(FieldNames.OldKentRoad)); Assert.That(game.Players[0].Money, Is.EqualTo(1500 - 20)); }
private static void DisplayStreetFieldData(Game game, int pos) { StreetField streetField = (StreetField)game.Fields[pos]; Console.Write(streetField.Name + ", Mortage: " + streetField.IsMortage + ", Level: " + streetField.Level + ", RentToPay: " + streetField.RentToPay); if (streetField.Owner != null) { Console.Write(", Owner: " + streetField.Owner.Name); } }
public void TestExChangeSupplierFieldwithField() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); SupplierField field7 = ((SupplierField)game.Fields[7]); field1.Buy(game.Players[0]); field7.Buy(game.Players[1]); field7.ExchangeField(field7.Owner, game.Players[0], field1); Assert.That(field1.Owner.Name, Is.EqualTo(game.Players[1].Name)); Assert.That(field7.Owner.Name, Is.EqualTo(game.Players[0].Name)); }
public void TestRemovePlayer() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); field1.Buy(game.Players[0]); game.RemovePlayer(game.Players[0]); Assert.That(game.Players.Count(), Is.EqualTo(1)); Assert.That(game.PlayerPos.Count(), Is.EqualTo(1)); Assert.That(game.CurrentPlayer.Removed, Is.EqualTo(true)); Assert.That(game.AuctionFields[0].Name, Is.EqualTo(FieldNames.OldKentRoad)); }
public void TestExChangeTrainStationFieldwithField() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); TrainstationField field5 = ((TrainstationField)game.Fields[5]); field1.Buy(game.Players[0]); field5.Buy(game.Players[1]); field5.ExchangeField(field5.Owner, game.Players[0], field1); Assert.That(field1.Owner.Name, Is.EqualTo(game.Players[1].Name)); Assert.That(field5.Owner.Name, Is.EqualTo(game.Players[0].Name)); }
private void SellHouseButton(object sender, RoutedEventArgs e) { try { StreetField field = (StreetField)selectedField; field.SellHouse(_game.CurrentPlayer, int.Parse(inputField.Text)); _monopolyField.Update(); } catch { MessageBox.Show("You cant sell houses on that field"); } }
public void TestExChangeFieldMoney() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); field1.Buy(game.Players[0]); field1.ExchangeField(game.Players[0], game.Players[1], 60); Assert.That(game.Players[0].OwnerShip.Count(), Is.EqualTo(0)); Assert.That(game.Players[0].Money, Is.EqualTo(1500)); Assert.That(game.Players[1].OwnerShip[0].Name, Is.EqualTo(FieldNames.OldKentRoad)); Assert.That(game.Players[1].Money, Is.EqualTo(1440)); Assert.That(field1.Owner.Name, Is.EqualTo(game.Players[1].Name)); }
public void TestBuyCurrentField() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = (StreetField)game.Fields[1]; game.SetPlayerPos(game.Players[0], 1); game.BuyCurrentStreet(game.Players[0]); Assert.That(game.Players[0].OwnerShip[0].Name, Is.EqualTo(FieldNames.OldKentRoad)); Assert.That(game.Players[0].Money, Is.EqualTo(1500 - 60)); game.SetPlayerPos(game.Players[1], 1); Assert.That(() => game.BuyCurrentStreet(game.Players[1]), Throws.InvalidOperationException); }
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); }
public void TestPayOffMortage() { 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]); field1.TakeMortage(game.Players[0]); Assert.That(field1.IsMortage, Is.EqualTo(true)); field1.PayOffMortage(game.Players[0]); Assert.That(field1.IsMortage, Is.EqualTo(false)); Assert.That(game.Players[0].Money, Is.EqualTo(1500 - 60 + 30 - 33)); Assert.That(() => field1.PayOffMortage(game.Players[1]), Throws.InvalidOperationException); field2.Buy(game.Players[0]); Assert.That(() => field2.PayOffMortage(game.Players[0]), Throws.InvalidOperationException); }
private static void SellHouse(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 streetHouse = (StreetField)game.CurrentPlayer.OwnerShip[streetNum]; Console.Write("Amount of Houses to Sell (1-5):"); int amount = int.Parse(Console.ReadLine()); streetHouse.SellHouse(game.CurrentPlayer, amount); }
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 TestAuctionField() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); game.StartAuction(new List <IRentableField> { field1 }); game.AuctionField(field1, new Dictionary <Player, int> { { game.Players[0], 100 }, { game.Players[1], 200 } }); game.FinishAuction(); Assert.That(game.Players[1].OwnerShip[0].Name, Is.EqualTo(FieldNames.OldKentRoad)); Assert.That(game.Players[1].Money, Is.EqualTo(1500 - 200)); }
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 PlayerDoesNotHaveEnoughMoney() { 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].GetMoney(20000); field1.Buy(game.Players[0]); field2.Buy(game.Players[1]); game.Players[1].PayMoney(game.Players[1].Money); Assert.That(() => game.Fields[1].OnEnter(game.Players[1]), Throws.TypeOf(typeof(NotEnoughMoneyException))); }
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 TestGameOver() { Game game = new Game(new Player[] { new Player("XXX"), new Player("YYY") }); StreetField field1 = ((StreetField)game.Fields[1]); field1.Buy(game.Players[0]); game.Players[1].PayMoney(game.Players[1].Money); try { field1.OnEnter(game.Players[1]); } catch (BankruptException) { game.RemovePlayer(game.Players[1]); Assert.That(game.CurrentPlayer.Removed, Is.EqualTo(true)); } Assert.That(game.IsGameOver, Is.EqualTo(true)); }
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); }
private static void Mortage(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 streetMortage = (StreetField)game.CurrentPlayer.OwnerShip[streetNum]; Console.Write("TakeMortage(t) PayOffMortage(p): "); string input = Console.ReadLine(); if (input == "t") { streetMortage.TakeMortage(game.CurrentPlayer); } else if (input == "p") { streetMortage.PayOffMortage(game.CurrentPlayer); } }
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))); }