def test_can_buy_good(self): chloe = Player("Chloe", 0, money=300) lucien = Player("Lucien", 1) board = Board() chloe.buy_good(board.boxes[3]) lucien.buy_good(board.boxes[9]) self.assertTrue(chloe.can_buy_good(board.boxes[1])) self.assertTrue(chloe.can_buy_good(board.boxes[5])) self.assertTrue(chloe.can_buy_good(board.boxes[12])) self.assertFalse(chloe.can_buy_good(board.boxes[2])) # not a good self.assertFalse(chloe.can_buy_good(board.boxes[3])) # chloe is owner self.assertFalse(chloe.can_buy_good(board.boxes[9])) # lucien is owner self.assertFalse(chloe.can_buy_good( board.boxes[39])) # not enough money
def test_buy_houses(self): chloe = Player("Chloe", 0) board = Board() chloe.buy_good(board.boxes[1]) chloe.buy_good(board.boxes[3]) chloe.buy_houses(board.boxes[1], 5) self.assertEqual(5, board.boxes[1].nb_houses) self.assertEqual(INITIAL_MONEY - 60 - 60 - 50 * 5, chloe.money) with self.assertRaises(Exception): chloe.buy_houses(board.boxes[1], 2) with self.assertRaises(Exception): chloe.buy_houses(board.boxes[2], 1) chloe.buy_good(board.boxes[39]) with self.assertRaises(Exception): chloe.buy_houses(board.boxes[39], 4)
def test_has_full_color(self): chloe = Player("Chloe", 0) board = Board() chloe.buy_good(board.boxes[1]) chloe.buy_good(board.boxes[3]) chloe.buy_good(board.boxes[6]) chloe.buy_good(board.boxes[8]) chloe.buy_good(board.boxes[9]) chloe.buy_good(board.boxes[11]) self.assertTrue(chloe.has_full_color("brown")) self.assertTrue(chloe.has_full_color("light-blue")) self.assertFalse(chloe.has_full_color("pink")) self.assertFalse(chloe.has_full_color("green")) with self.assertRaises(KeyError): chloe.has_full_color("purple")
def test_get_rent(self): chloe = Player("Chloe", 0) lucien = Player("Lucien", 1) gildas = Player("Gildas", 1) board = Board() chloe.buy_good(board.boxes[1]) board.boxes[1].nb_houses = 2 chloe.buy_good(board.boxes[3]) board.boxes[3].nb_houses = 3 chloe.buy_good(board.boxes[5]) chloe.buy_good(board.boxes[6]) chloe.buy_good(board.boxes[12]) gildas.buy_good(board.boxes[15]) gildas.buy_good(board.boxes[25]) lucien.dices = [3, 4] self.assertEqual(0, board.boxes[1].get_rent(chloe)) self.assertEqual(0, board.boxes[8].get_rent(chloe)) self.assertEqual(0, board.boxes[16].get_rent(chloe)) self.assertEqual(30, board.boxes[1].get_rent(lucien)) self.assertEqual(180, board.boxes[3].get_rent(lucien)) self.assertEqual(50, board.boxes[5].get_rent(lucien)) self.assertEqual((3 + 4) * 4, board.boxes[12].get_rent(lucien)) self.assertEqual(0, board.boxes[13].get_rent(lucien)) self.assertEqual(100, board.boxes[15].get_rent(lucien))
def test_get_number_of_stations(self): chloe = Player("Chloe", 0) lucien = Player("Lucien", 1) gildas = Player("Gildas", 2) board = Board() chloe.buy_good(board.boxes[5]) chloe.buy_good(board.boxes[15]) lucien.buy_good(board.boxes[25]) self.assertEqual(2, chloe.get_number_of_stations()) self.assertEqual(1, lucien.get_number_of_stations()) self.assertEqual(0, gildas.get_number_of_stations())
def test_get_number_of_buildings(self): chloe = Player("Chloe", 0) lucien = Player("Lucien", 1) board = Board() chloe.buy_good(board.boxes[1]) chloe.buy_good(board.boxes[3]) chloe.buy_good(board.boxes[6]) chloe.buy_good(board.boxes[8]) chloe.buy_good(board.boxes[9]) chloe.buy_houses(board.boxes[1], 5) chloe.buy_houses(board.boxes[3], 3) chloe.buy_houses(board.boxes[6], 5) chloe.buy_houses(board.boxes[8], 2) self.assertEqual((5, 2), chloe.get_number_of_buildings()) self.assertEqual((0, 0), lucien.get_number_of_buildings())
def test_buy_good(self): chloe = Player("Chloe", 0) board = Board() chloe.buy_good(board.boxes[39]) chloe.buy_good(board.boxes[1]) chloe.buy_good(board.boxes[5]) self.assertEqual(3, len(chloe.goods)) self.assertEqual("Rue de la Paix", chloe.goods[0].name) self.assertEqual("Boulevard de Belleville", chloe.goods[1].name) self.assertEqual("Gare Montparnasse", chloe.goods[2].name) self.assertEqual( INITIAL_MONEY - sum([good.price for good in chloe.goods]), chloe.money) with self.assertRaises(Exception): chloe.buy_good(board.boxes[2])
def test_taxes(self): chloe = Player("Chloe", 0) board = Board() chloe.buy_good(board.boxes[1]) chloe.buy_good(board.boxes[3]) chloe.buy_good(board.boxes[6]) chloe.buy_good(board.boxes[8]) chloe.buy_good(board.boxes[9]) chloe.buy_houses(board.boxes[1], 5) chloe.buy_houses(board.boxes[3], 3) chloe.buy_houses(board.boxes[6], 5) chloe.buy_houses(board.boxes[8], 2) money_before_taxes = chloe.money card = Card(card_id="666", name="", card_type="taxes", value=[20, 50]) card.execute(chloe, None, board) tax = 5 * 20 + 2 * 50 self.assertEqual(money_before_taxes - tax, chloe.money) self.assertEqual(board.park_money, tax)
def test_can_buy_houses(self): chloe = Player("Chloe", 0, money=600) board = Board() chloe.buy_good(board.boxes[1]) self.assertEqual(0, chloe.can_buy_houses( board.boxes[1])) # does not own all properties chloe.buy_good(board.boxes[3]) self.assertEqual(0, chloe.can_buy_houses(board.boxes[5])) # not a street self.assertEqual(5, chloe.can_buy_houses(board.boxes[1])) board.boxes[1].nb_houses = 3 self.assertEqual(2, chloe.can_buy_houses( board.boxes[1])) # only 2 houses available self.assertEqual(0, chloe.can_buy_houses( board.boxes[39])) # not the owner chloe.buy_good(board.boxes[39]) self.assertEqual(0, chloe.can_buy_houses( board.boxes[39])) # not enough money
def test_get_number_of_companies(self): chloe = Player("Chloe", 0) board = Board() chloe.buy_good(board.boxes[12]) self.assertEqual(1, chloe.get_number_of_companies())