class PopulateRepositoriesTest(unittest.TestCase): def setUp(self): self.book_repository = BookRepository() self.client_repository = ClientRepository() self.rental_repository = RentalRepository() self.action_repository = ActionRepository() self.action_service = ActionService(self.action_repository, self.book_repository, self.client_repository, self.rental_repository) self.book_validator = BookValidator() self.book_service = BookService(self.action_service, self.book_repository, self.book_validator) self.client_validator = ClientValidator() self.rental_validator = RentalValidator() self.client_service = ClientService(self.action_service, self.client_repository, self.client_validator) self.rental_service = RentalService(self.action_service, self.book_repository, self.client_repository, self.rental_repository, self.book_validator, self.client_validator, self.rental_validator) def test_populate_book_repository(self): populate_book_repository(self.book_service) assert len(self.book_repository.get_all_books()) > 0 def test_populate_client_repository(self): populate_client_repository(self.client_service) assert len(self.client_repository.get_all_clients()) > 0 def test_populate_rental_repository(self): self.test_populate_book_repository() self.test_populate_client_repository() populate_rental_repository(self.rental_service) assert len(self.rental_repository.get_all_rentals()) > 0
class ClientRepositoryTest(unittest.TestCase): def setUp(self): self.client_repository = ClientRepository() client = Client(1, "Name1") self.client_repository.add_client(client) client = Client(2, "Name2") self.client_repository.add_client(client) def test_client_repository_add_client(self): client = Client(3, "Name3") self.client_repository.add_client(client) client = self.client_repository.get_all_clients() client = client[-1] assert client.id == 3 assert client.name == "Name3" def test_client_repository_remove_client(self): clients_list = self.client_repository.get_all_clients() client = clients_list[-1] assert client.id == 2 self.client_repository.remove_client_by_index(1) client = clients_list[-1] assert client.id == 1 def test_client_repository_update_client(self): clients_list = self.client_repository.get_all_clients() client = clients_list[-1] assert client.id == 2 assert client.name == "Name2" client = Client(10, "New Name") self.client_repository.update_client(1, client) clients_list = self.client_repository.get_all_clients() client = clients_list[-1] assert client.id == 10 assert client.name == "New Name" def test_client_repository_get_next_client_id(self): assert self.client_repository.get_next_client_id() == 1 self.client_repository.increment_last_client_id() assert self.client_repository.get_next_client_id() == 3 def test_client_repository_get_all_clients(self): clients_list = self.client_repository.get_all_clients() assert len(clients_list) == 2 def tearDown(self): del self.client_repository
def get_all_clients(self): self.__read_all_from_file() return ClientRepository.get_all_clients(self)
class ClientServiceTest(unittest.TestCase): def setUp(self): self.action_repository = ActionRepository() self.book_repository = BookRepository() self.client_repository = ClientRepository() self.rental_repository = RentalRepository() self.action_service = ActionService(self.action_repository, self.book_repository, self.client_repository, self.rental_repository) self.client_validator = ClientValidator() self.client_service = ClientService(self.action_service, self.client_repository, self.client_validator) self.client_service.add_client("Name") assert (len(self.client_repository.get_all_clients()) == 1) def test_client_service_add_client(self): self.client_service.add_client("Name2") assert (len(self.client_repository.get_all_clients()) == 2) self.action_service.undo() assert (len(self.client_repository.get_all_clients()) == 1) self.action_service.redo() assert (len(self.client_repository.get_all_clients()) == 2) def test_client_service_remove_client_by_client_id(self): self.client_service.remove_client_by_client_id(1) assert (len(self.client_repository.get_all_clients()) == 0) self.assertRaises(RepoError, self.client_service.remove_client_by_client_id, 5) self.action_service.undo() assert (len(self.client_repository.get_all_clients()) == 1) self.action_service.redo() assert (len(self.client_repository.get_all_clients()) == 0) def test_client_service_update_client_by_client_id(self): self.client_service.update_client_by_client_id(1, "New Name") client = self.client_repository.get_all_clients()[-1] assert client.id == 1 assert client.name == "New Name" self.action_service.undo() client = self.client_repository.get_all_clients()[-1] assert client.id == 1 assert client.name == "Name" self.assertRaises(RepoError, self.client_service.update_client_by_client_id, 5, "New") self.action_service.redo() client = self.client_repository.get_all_clients()[-1] assert client.id == 1 assert client.name == "New Name" def test_client_service_update_client_by_name(self): self.client_service.update_client_by_name("Name", "New Name") client = self.client_repository.get_all_clients()[-1] assert client.id == 1 assert client.name == "New Name" self.assertRaises(RepoError, self.client_service.update_client_by_name, "5", "New") def test_client_service_find_client_by_name(self): index, client = self.client_service.find_client_by_name("Name") assert index == 0 assert isinstance(client, Client) index, client = self.client_service.find_client_by_name("No Name") assert index is None def test_client_service_find_all_clients_sharing_name_value(self): self.client_service.add_client("Nova Scotia") client_list = self.client_service.find_all_clients_sharing_name_value("n") assert len(client_list) == 2 def test_client_service_find_all_clients_sharing_id_value(self): self.client_service.add_client("Nova Scotia") client_list = self.client_service.find_all_clients_sharing_id_value(1) assert len(client_list) == 1 def tearDown(self): del self.client_repository del self.client_validator del self.client_service