示例#1
0
class TestRepository(unittest.TestCase):
    def setUp(self):
        super().setUp()
        self.__repository = Repository(PersonValidator)

    def test_find_by_id(self):
        p = Person(1, "John", "0756705316", "street 1")
        self.__repository.save(p)

        self.assertEqual(self.__repository.find_by_id(1), p,
                         "find_by_id(1) should be equal to p")
        self.assertEqual(self.__repository.find_by_id(2), None,
                         "find_by_id(2) should be equal to None")

    def test_save(self):
        p = Person(1, "John", "0756705316", "street 1")
        self.__repository.save(p)

        # check if the size of the repository has changed
        self.assertEqual(len(self.__repository.get_all()), 1,
                         "repository length should be 1")

        p2 = Person(1, "John1", "0756705415", "street 2")

        # check for DuplicateIdException
        self.assertRaises(DuplicateIdException, self.__repository.save, p2)

        # check for ValidatorException
        p3 = Person("invalid", 123, "00", 12)
        self.assertRaises(RepositoryException, self.__repository.save, p3)

    def test_update(self):
        p = Person(1, "John", "0756705316", "street 1")
        self.__repository.save(p)

        p2 = Person(1, "John1", "0000000000", "street2")
        self.__repository.update(p2)

        self.assertEqual(self.__repository.find_by_id(1), p2,
                         "find_by_id(1) should be equal to p2")

        p3 = Person("Invalid", 12341, 131, 131)
        self.assertRaises(RepositoryException, self.__repository.update, p3)

        p4 = Person(5, "Inexistent", "0000000000", "street 5")

        self.assertRaises(IdNotFoundException, self.__repository.update, p4)

    def test_delete_by_id(self):
        p = Person(1, "John", "0756705316", "street 1")
        self.__repository.save(p)

        self.__repository.delete_by_id(p.entity_id)

        self.assertEqual(len(self.__repository.get_all()), 0,
                         "repository size should be 0")

        self.assertRaises(IdNotFoundException, self.__repository.delete_by_id,
                          100)

    def test_get_all(self):
        p = Person(1, "John", "0756705316", "street 1")
        self.__repository.save(p)

        self.assertEqual(len(self.__repository.get_all()), 1,
                         "repository size should be 1")
示例#2
0
 def save(self, entity):
     Repository.save(self, entity)
     self.__writeToFile()