Ejemplo n.º 1
0
class TestMafiaOrganizationMemberToFreedomCase3MultiLevelsKillLevel2(TestCase):
    def setUp(self):
        # Given
        self.big_boss = Gangster('Big Boss', 21)
        self.g1 = Gangster('Gangster', 20, 'Location Gangster')
        self.g2 = Gangster('Gangster 2', 30, 'Location Gangster 2')
        self.g3 = Gangster('Gangster 3', 32, 'Location Gangster 3')

        self.mog = MafiaOrganization(self.big_boss)
        self.mog.add_under(self.big_boss, self.g1)
        self.mog.add_under(self.g1, self.g2)
        self.mog.add_under(self.g1, self.g3)

        self.mog.send_member_to_jail('Gangster')

        # When
        self.mog.set_member_to_freedom('Gangster')

    def test_set_member_to_freedom_is_in_organization(self):
        self.assertIsInstance(self.mog.find_by_name('Gangster'), Gangster)

    def test_set_member_to_freedom_is_found_by_is_member_of_organization(self):
        self.assertTrue(self.mog.is_member_of_organization('Gangster'))

    def test_set_member_to_freedom_subordinate_is_still_in_organization(self):
        self.assertIsInstance(self.mog.find_by_name('Gangster 2'), Gangster)
        self.assertIsInstance(self.mog.find_by_name('Gangster 3'), Gangster)

    def test_set_member_to_freedom_previous_subordinate_returns_to_the_previous_boss(self):
        self.assertEquals(self.g3.get_boss(), self.g1)
        self.assertEquals(self.g2.get_boss(), self.g1)

    def test_correct_organization_count(self):
        self.assertEquals(self.mog.members_count(), 4)
Ejemplo n.º 2
0
class TestMafiaOrganizationSendMemberToJailCase3MultiLevelsKillLevel2(TestCase):
    def setUp(self):
        # Given
        self.big_boss = Gangster('Big Boss', 21)
        self.g1 = Gangster('Gangster', 20, 'Location Gangster')
        self.g2 = Gangster('Gangster 2', 30, 'Location Gangster 2')
        self.g3 = Gangster('Gangster 3', 32, 'Location Gangster 3')

        self.mog = MafiaOrganization(self.big_boss)
        self.mog.add_under(self.big_boss, self.g1)
        self.mog.add_under(self.g1, self.g2)
        self.mog.add_under(self.g1, self.g3)

        # When
        self.mog.send_member_to_jail('Gangster')

    def test_send_member_to_jail_is_still_in_organization(self):
        self.assertIsInstance(self.mog.find_by_name('Gangster'), Gangster)

    def test_send_member_to_jail_is_no_longer_found_by_is_member_of_organization(self):
        self.assertFalse(self.mog.is_member_of_organization('Gangster'))

    def test_send_member_to_jail_oldest_subordinate_has_big_boss_as_a_new_boss(self):
        self.assertEquals(self.g3.get_boss(), self.mog.get_big_boss())

    def test_send_member_to_jail_youngest_subordinate_has_a_new_boss(self):
        self.assertEquals(self.g2.get_boss(), self.g3)

    def test_correct_organization_count(self):
        self.assertEquals(self.mog.members_count(), 4)
Ejemplo n.º 3
0
class TestMafiaOrganizationIsMemberOfOrganization(TestCase):
    def setUp(self):
        self.big_boss = Gangster('Big Boss', 21)
        self.g1 = Gangster('Gangster', 20)

        self.mog = MafiaOrganization(self.big_boss)
        self.mog.add_under(self.big_boss, self.g1)

    def test_is_member_of_organization_for_big_boss_returns_true(self):
        self.assertTrue(self.mog.is_member_of_organization('Big Boss'))

    def test_is_member_of_organization_for_a_known_member_returns_true(self):
        self.assertTrue(self.mog.is_member_of_organization('Gangster'))

    def test_is_member_of_organization_for_a_unknown_member_returns_false(self):
        self.assertFalse(self.mog.is_member_of_organization('Another Gangster'))

    def test_is_member_of_organization_for_a_member_injail_returns_false(self):
        self.g1.status = GangsterStatus.INJAIL
        self.assertFalse(self.mog.is_member_of_organization('Gangster'))
Ejemplo n.º 4
0
class TestMafiaOrganizationSendMemberToJailCase3MultiLevelsDepthKillLevel2(TestCase):
    def setUp(self):
        # Given
        self.big_boss = Gangster('Big Boss', 21, 'Location Big Boss')
        self.g1 = Gangster('Gangster', 31, 'Location Gangster')
        self.g2 = Gangster('Gangster 2', 32, 'Location Gangster 2')
        self.g3 = Gangster('Gangster 3', 33, 'Location Gangster 3')

        self.g4 = Gangster('Gangster 4', 12, 'Location Gangster 4')
        self.g5 = Gangster('Gangster 5', 12, 'Location Gangster 5')
        self.g6 = Gangster('Gangster 6', 12, 'Location Gangster 6')

        self.mog = MafiaOrganization(self.big_boss)
        self.mog.add_under(self.big_boss, self.g1)
        self.mog.add_under(self.big_boss, self.g2)
        self.mog.add_under(self.big_boss, self.g3)

        self.mog.add_under(self.g1, self.g4)
        self.mog.add_under(self.g2, self.g5)
        self.mog.add_under(self.g3, self.g6)

        # When
        self.mog.send_member_to_jail('Gangster')

    def test_send_member_to_jail_is_still_in_organization(self):
        self.assertIsInstance(self.mog.find_by_name('Gangster'), Gangster)

    def test_send_member_to_jail_is_no_longer_found_by_is_member_of_organization(self):
        self.assertFalse(self.mog.is_member_of_organization('Gangster'))

    def test_send_member_to_jail_subordinate_is_still_in_organization(self):
        self.assertIsInstance(self.mog.find_by_name('Gangster 4'), Gangster)

    def test_send_member_to_jail_subordinate_has_a_new_boss(self):
        self.assertEquals(self.g4.get_boss(), self.g3)
        self.assertEquals(self.g6.get_boss(), self.g3)

    def test_correct_organization_count(self):
        self.assertEquals(self.mog.members_count(), 7)