class TestVillage(unittest.TestCase):
    def setUp(self):
        self.world = 'pl100'
        self.village = Village(self.world)

    def test_build_normal_building(self):
        next_building = Building(self.world, 'main', 1)
        self.village.build(next_building)
        self.assertEqual(-90, self.village.wood)
        self.assertEqual(-80, self.village.stone)
        self.assertEqual(-70, self.village.iron)
        self.assertEqual(25, self.village.population)
        self.assertEqual(205, self.village.max_population)
        self.assertEqual(813, self.village.capacity)
        self.assertEqual(1, self.village.buildings['main'].level)
        self.assertEqual(10, self.village.points)

    def test_build_farm(self):
        next_building = Building(self.world, 'storage', 1)
        self.village.build(next_building)
        self.assertEqual(205, self.village.max_population)
        self.assertEqual(1000, self.village.capacity)
        self.assertEqual(6, self.village.points)

    def test_build_storage(self):
        next_building = Building(self.world, 'farm', 1)
        self.village.build(next_building)
        self.assertEqual(240, self.village.max_population)
        self.assertEqual(813, self.village.capacity)
        self.assertEqual(5, self.village.points)

    def test_add_resource(self):
        self.village.add_resource(10)
        self.assertEqual(0.07222222222222223, self.village.wood)
        self.assertEqual(0.07222222222222223, self.village.stone)
        self.assertEqual(0.07222222222222223, self.village.iron)

    def test_add_resource_max_capacity(self):
        self.village.add_resource(100000000000000)
        self.assertEqual(self.village.capacity, self.village.wood)
        self.assertEqual(self.village.capacity, self.village.stone)
        self.assertEqual(self.village.capacity, self.village.iron)