def setUp(self): self.__book_search = Mock(SearchBook) self.__book_details = Mock(GetBookDetails) self.__add_book = Mock(AddBook) self.__add_book_type = Mock(AddBookType) self.__get_book_type = Mock(GetBookType) self.__list_books_by_first_letter = Mock(ListBooksByFirstLetter) self.__get_book_by_title_and_author = Mock(GetBookByTitleAndAuthor) self.__add_book_format = Mock(AddBookFormat) self.__format_exists = Mock(FormatExists) self.__query_factory = Mock(QueryFactory) self.__query_factory.create_book_search = Mock(return_value=self.__book_search) self.__query_factory.create_get_book_details = Mock(return_value=self.__book_details) self.__query_factory.create_add_book = Mock(return_value=self.__add_book) self.__query_factory.create_add_book_type = Mock(return_value=self.__add_book_type) self.__query_factory.create_get_book_type = Mock(return_value=self.__get_book_type) self.__query_factory.create_first_book_by_letter = Mock(return_value=self.__list_books_by_first_letter) self.__query_factory.create_get_book_by_title_and_author = Mock(return_value=self.__get_book_by_title_and_author) self.__query_factory.create_add_book_format = Mock(return_value=self.__add_book_format) self.__query_factory.create_format_exists = Mock(return_value=self.__format_exists) self.__target = SqlitePersistence(self.__query_factory)
class TestSqlitePersistence(unittest.TestCase): def setUp(self): self.__book_search = Mock(SearchBook) self.__book_details = Mock(GetBookDetails) self.__add_book = Mock(AddBook) self.__add_book_type = Mock(AddBookType) self.__get_book_type = Mock(GetBookType) self.__list_books_by_first_letter = Mock(ListBooksByFirstLetter) self.__get_book_by_title_and_author = Mock(GetBookByTitleAndAuthor) self.__add_book_format = Mock(AddBookFormat) self.__format_exists = Mock(FormatExists) self.__query_factory = Mock(QueryFactory) self.__query_factory.create_book_search = Mock(return_value=self.__book_search) self.__query_factory.create_get_book_details = Mock(return_value=self.__book_details) self.__query_factory.create_add_book = Mock(return_value=self.__add_book) self.__query_factory.create_add_book_type = Mock(return_value=self.__add_book_type) self.__query_factory.create_get_book_type = Mock(return_value=self.__get_book_type) self.__query_factory.create_first_book_by_letter = Mock(return_value=self.__list_books_by_first_letter) self.__query_factory.create_get_book_by_title_and_author = Mock(return_value=self.__get_book_by_title_and_author) self.__query_factory.create_add_book_format = Mock(return_value=self.__add_book_format) self.__query_factory.create_format_exists = Mock(return_value=self.__format_exists) self.__target = SqlitePersistence(self.__query_factory) def test_search_books_uses_query_factory(self): self.__target.search_books("Moo") self.__assert_called(self.__query_factory.create_book_search) def test_search_books_calls_search_object(self): self.__target.search_books("Moo") self.__assert_called(self.__book_search.execute) def test_get_book_details_uses_query_factory(self): self.__target.get_book_details(1) self.__assert_called(self.__query_factory.create_get_book_details) def test_get_book_details_calls_get_book_details_object(self): self.__target.get_book_details(1) self.__assert_called(self.__book_details.execute) def test_add_book_uses_query_factory(self): self.__target.add_book(None) self.__assert_called(self.__query_factory.create_add_book) def test_add_book_calls_add_book_object(self): self.__target.add_book(None) self.__assert_called(self.__add_book.execute) def test_add_book_type_uses_query_factory(self): self.__target.add_book_type(None) self.__assert_called(self.__query_factory.create_add_book_type) def test_add_book_type_calls_add_book_type_object(self): self.__target.add_book_type(None) self.__assert_called(self.__add_book_type.execute) def test_book_type_calls_query_factory(self): self.__target.get_book_type("EPUB") self.__assert_called(self.__query_factory.create_get_book_type) def test_get_book_type_calls_get_book_type_object(self): self.__target.get_book_type("EPUB") self.__assert_called(self.__get_book_type.execute) def test_list_books_by_first_letter_uses_query_factory(self): self.__target.list_books_by_first_letter("B") self.__assert_called(self.__query_factory.create_first_book_by_letter) def test_list_books_by_first_letter_calls_the_query_object(self): self.__target.list_books_by_first_letter("B") self.__assert_called(self.__list_books_by_first_letter.execute) def test_get_book_by_title_and_author_uses_query_factory(self): self.__target.get_book_by_title_and_author(Book()) self.__assert_called(self.__query_factory.create_get_book_by_title_and_author) def test_get_book_by_title_and_author_calls_query_object(self): self.__target.get_book_by_title_and_author(Book()) self.__assert_called(self.__get_book_by_title_and_author.execute) def test_add_book_format_uses_query_factory(self): self.__target.add_book_format(book_id=0, book_format=None) self.__assert_called(self.__query_factory.create_add_book_format) def test_add_book_format_calls_command_object(self): self.__target.add_book_format(book_id=0, book_format=None) self.__assert_called(self.__add_book_format.execute) def test_format_exists_uses_query_factory(self): self.__target.format_exists(book_id=0, book_format=None) self.__assert_called(self.__query_factory.create_format_exists) def test_format_exists_calls_command_object(self): self.__target.format_exists(book_id=0, book_format=None) self.__assert_called(self.__format_exists.execute) def __assert_called(self, method): self.assertTrue(method.called) def test_implements_persistence(self): self.assertIsInstance(self.__target, Persistence)