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
Ejemplo n.º 2
0
class BookRepositoryTest(unittest.TestCase):
    def setUp(self):
        self.book_repository = BookRepository()
        book = Book(1, "Title1", "Author1")
        self.book_repository.add_book(book)
        book = Book(2, "Title2", "Author2")
        self.book_repository.add_book(book)

    def test_book_repository_add_book(self):
        book = Book(3, "Title3", "Author3")
        self.book_repository.add_book(book)
        books_list = self.book_repository.get_all_books()
        book = books_list[-1]
        assert (book.id == 3)
        assert (book.title == "Title3")
        assert (book.author == "Author3")

    def test_book_repository_remove_book(self):
        books_list = self.book_repository.get_all_books()
        book = books_list[-1]
        assert (book.id == 2)
        self.book_repository.remove_book_by_index(1)
        book = books_list[-1]
        assert (book.id == 1)

    def test_book_repository_update_book(self):
        books_list = self.book_repository.get_all_books()
        book = books_list[-1]
        assert (book.id == 2)
        new_book = Book(10, "New Title", "New Author")
        self.book_repository.update_book(1, new_book)
        book = books_list[-1]
        assert (book.id == 10)
        assert (book.title == "New Title")
        assert (book.author == "New Author")

    def test_book_repository_get_next_book_id(self):
        assert (self.book_repository.get_next_book_id() == 1)
        self.book_repository.increment_last_book_id()
        assert (self.book_repository.get_next_book_id() == 3)

    def test_book_repository_get_all_books(self):
        books_list = self.book_repository.get_all_books()
        assert len(books_list) == 2

    def tearDown(self):
        del self.book_repository
Ejemplo n.º 3
0
 def get_all_books(self):
     self.__read_all_from_file()
     return BookRepository.get_all_books(self)
class BookServiceTest(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.book_validator = BookValidator()
        self.book_service = BookService(self.action_service, self.book_repository, self.book_validator)
        self.book_service.add_book("Title", "Author")
        assert (len(self.book_repository.get_all_books()) == 1)

    def test_book_service_add_book(self):
        self.book_service.add_book("Title", "Author")
        assert (len(self.book_repository.get_all_books()) == 2)
        self.action_service.undo()
        assert (len(self.book_repository.get_all_books()) == 1)
        self.action_service.redo()
        assert (len(self.book_repository.get_all_books()) == 2)
        self.assertRaises(RepoError, self.action_service.redo)

    def test_book_service_remove_book_by_book_id(self):
        self.book_service.remove_book_by_book_id(1)
        assert (len(self.book_repository.get_all_books()) == 0)
        self.assertRaises(RepoError, self.book_service.remove_book_by_book_id, 5)
        self.action_service.undo()
        assert (len(self.book_repository.get_all_books()) == 1)
        self.action_service.undo()
        self.assertRaises(RepoError, self.action_service.undo)
        self.action_service.redo()
        assert (len(self.book_repository.get_all_books()) == 1)

    def test_book_service_update_book_by_book_id(self):
        self.book_service.update_book_by_book_id(1, "New Title", "New Author")
        book = self.book_service.get_book_by_book_id(1)
        assert book.id == 1
        assert book.title == "New Title"
        assert book.author == "New Author"
        self.assertRaises(RepoError, self.book_service.update_book_by_book_id, 5, "New", "New")
        self.action_service.undo()
        book = self.book_service.get_book_by_book_id(1)
        assert book.id == 1
        assert book.title == "Title"
        assert book.author == "Author"
        self.action_service.redo()
        book = self.book_service.get_book_by_book_id(1)
        assert book.id == 1
        assert book.title == "New Title"
        assert book.author == "New Author"

    def test_book_service_find_book_by_book_id(self):
        index, book = self.book_service.find_book_by_book_id(1)
        assert index == 0
        assert isinstance(book, Book)

    def test_book_service_find_book_by_title_and_author(self):
        index, book = self.book_service.find_book_by_title_and_author("Title", "Author")
        assert index == 0
        assert isinstance(book, Book)
        index, book = self.book_service.find_book_by_title_and_author("t", "a")
        assert index is None
        assert book is None

    def test_book_service_find_all_books_with_id_containing_value(self):
        books_list = self.book_service.find_all_books_with_id_containing_value(1)
        assert len(books_list) == 1

    def test_book_service_find_all_books_with_title_containing_string(self):
        books_list = self.book_service.find_all_books_with_title_containing_string("Ti")
        assert len(books_list) == 1

    def test_book_service_find_all_books_with_author_containing_string(self):
        books_list = self.book_service.find_all_books_with_author_containing_string("a")
        assert len(books_list) == 1

    def test_book_service_get_book_by_book_id(self):
        book = self.book_service.get_book_by_book_id(2)
        assert book is None

    def tearDown(self):
        del self.book_repository
        del self.book_validator
        del self.book_service