def test_repo(self):
        repoBooks = Repo()
        repoBooks.add(Book('0000', 'title', 'author'))
        repoBooks.add(Book('0001', 'title', 'author'))

        self.assertEqual(len(repoBooks), 2)

        l = []
        for i in repoBooks:
            l.append(i)
        self.assertEqual(len(l), 2)

        self.assertEqual(repoBooks[0], Book('0000', 'title', 'author'))
        repoBooks[0] = Book('0001', 'title', 'author')
        self.assertEqual(repoBooks[0], Book('0001', 'title', 'author'))
Exemple #2
0
 def test_srv_client(self):
     repo = Repo()
     validateClient = ValidateClient()
     srvClient = ServiceClients(repo, validateClient)
     assert (srvClient.get_nr_clients() == 0)
     clientId = "aaaa"
     name = "Jenel"
     srvClient.add(clientId, name)
     assert (srvClient.get_nr_clients() == 1)
     assert (srvClient.get_client_by_id("aaaa").name == "Jenel")
     try:
         srvClient.add("aaaa", "jean")
         assert (False)
     except RepoError as re:
         assert (str(re) == "existing id!\n")
     try:
         srvClient.get_client_by_id("bbbb")
         assert (False)
     except RepoError as re:
         assert (str(re) == "inexisting id!\n")
     assert (srvClient.get_clients() == [Client("aaaa", "Jenel")])
     srvClient.update_client("aaaa", "NAME")
     self.assertEqual(srvClient.get_client_by_id("aaaa").name, "NAME")
     srvClient.remove("aaaa")
     self.assertEqual(srvClient.get_clients(), [])
Exemple #3
0
 def test_srv_book(self):
     repo = Repo()
     valid = ValidateBook()
     srvBook = ServiceBooks(repo, valid)
     assert srvBook.get_nr_books() == 0
     bookId = "0000"
     title = "title"
     author = "author"
     srvBook.add(bookId, title, author)
     assert srvBook.get_nr_books() == 1
     foundBook = srvBook.get_book_by_id("0000")
     assert foundBook.title == title
     assert foundBook.author == author
     try:
         srvBook.add("0000", "title1", "author1")
     except RepoError as re:
         assert str(re) == "existing id!\n"
     try:
         srvBook.add("", "", "")
     except ValidError as ve:
         assert str(ve) == "invalid id!\ninvalid title!\ninvalid author!\n"
     books = srvBook.get_books()
     assert books == [Book("0000", "title", "author")]
     srvBook.update_title("0000", "title")
     self.assertEqual(srvBook.get_book_by_id("0000").title, "title")
     srvBook.update_author("0000", "author1")
     self.assertEqual(srvBook.get_book_by_id("0000").author, "author1")
     srvBook.remove("0000")
     self.assertEqual(srvBook.get_books(), [])
Exemple #4
0
 def test_search_by_title(self):
     repoBooks = Repo()
     validateBooks = ValidateBook()
     serviceBooks = ServiceBooks(repoBooks, validateBooks)
     repoBooks.add(Book("0000", "Portretul lui Dorian Gray", "Oscar Wilde"))
     repoBooks.add(Book("0001", "La rascruce de vanturi", "Emilly Bronte"))
     repoBooks.add(Book("0002", "Jane Eyre", "Charlotte Bronte"))
     l = serviceBooks.search_by_title("y")
     self.assertEqual(
         l[0], Book("0000", "Portretul lui Dorian Gray", "Oscar Wilde"))
     self.assertEqual(l[1], Book("0002", "Jane Eyre", "Charlotte Bronte"))
Exemple #5
0
 def test_search_clients_by_name(self):
     repoClients = Repo()
     validateClients = ValidateClient()
     serviceClients = ServiceClients(repoClients, validateClients)
     repoClients.add(Client("aaaa", "Groza Ionut"))
     repoClients.add(Client("aaab", "Groza Sami"))
     repoClients.add(Client("aaac", "Groza Marius"))
     l = serviceClients.search_by_name("gROzA")
     self.assertEqual(l, [
         Client("aaaa", "Groza Ionut"),
         Client("aaab", "Groza Sami"),
         Client("aaac", "Groza Marius")
     ])
Exemple #6
0
 def test_srv_rental(self):
     repoBooks = FileRepo("file", Book.read_book, Book.write_book)
     repoClients = FileRepo("file", Client.read_client, Client.write_client)
     repoRental = FileRepo("file", Rental.read_rental, Rental.write_rental)
     repoUndo = Repo()
     repoRedo = Repo()
     validateRental = ValidateRental()
     rentalId = "0000"
     book = Book("0000", "title", "author")
     repoBooks.add(book, None)
     client = Client("aaaa", "Jenel")
     repoClients.add(client)
     rentedDate = "date"
     returnedDate = "date"
     srvRental = ServiceRental(repoRental, repoBooks, repoClients,
                               validateRental, repoUndo, repoRedo)
     assert (srvRental.get_nr_rentals() == 0)
     srvRental.add(rentalId, book.id, client.id, rentedDate, returnedDate)
     assert (srvRental.get_nr_rentals() == 1)
     srvRental.return_book("0000", "0000", "date")
     self.assertEqual(srvRental.get_rentals(),
                      [Rental("0000", book, client, "date", "date")])
    def test_service(self):
        repoBooks = Repo()
        repoBooks.add(Book('0', 't', 'a'))
        repoBooks.add(Book('0001', 'title', 'author'))
        serviceBooks = ServiceBooks(repoBooks, None, None, None)

        serviceBooks.sort()
        self.assertEqual(repoBooks[0].id, '0001')

        serviceBooks.filter()
        self.assertEqual(len(repoBooks), 1)
Exemple #8
0
 def test_repo_books(self):
     repoBooks = Repo()
     assert repoBooks.length() == 0
     book = Book("0000", "title", "author")
     repoBooks.add(book)
     objId = Book(book.id, None, None)
     foundBook = repoBooks.search(objId)
     assert foundBook.title == book.title
     assert foundBook.author == book.author
     assert repoBooks.length() == 1
     book = Book("0000", "title1", "author1")
     try:
         repoBooks.add(book)
         assert (False)
     except Exception as ex:
         assert (str(ex) == "existing id!\n")
     book1 = Book("0001", "title", "author")
     repoBooks.add(book1)
     assert repoBooks.length() == 2
     non_existing_book = Book("0005", None, None)
     try:
         repoBooks.search(non_existing_book)
         assert (False)
     except Exception as ex:
         assert (str(ex) == "inexisting id!\n")
     books = repoBooks.get_all()
     assert books == [book, book1]
Exemple #9
0
 def test_most_active_clients(self):
     repoRental = Repo()
     repoClients = Repo()
     repoBooks = Repo()
     validateBook = ValidateBook()
     repoBooks.add(Book("0000", "Portretul lui Dorian Gray", "Oscar Wilde"))
     repoBooks.add(Book("0001", "La rascruce de vanturi", "Emilly Bronte"))
     repoBooks.add(Book("0002", "Jane Eyre", "Charlotte Bronte"))
     validateClient = ValidateClient()
     repoClients.add(Client("aaaa", "Groza Ionut"))
     repoClients.add(Client("aaab", "Groza Sami"))
     repoClients.add(Client("aaac", "Groza Marius"))
     repoRental.add(
         Rental("0001", Book("0002", "Jane Eyre", "Charlotte Bronte"),
                Client("aaad", "Groza Adriana"), "2019.11.07",
                "2019.11.11"))
     repoRental.add(
         Rental("0002",
                Book("0007", "Sa ucizi o pasare cantatoare", "Harper Lee"),
                Client("aaaa", "Groza Ionut"), "2019.11.11", "2019.11.27"))
     repoRental.add(
         Rental("0003", Book("0002", "Jane Eyre", "Charlotte Bronte"),
                Client("aaad", "Groza Adriana"), "2019.11.12",
                "2019.11.15"))
     repoRental.add(
         Rental("0004", Book("0008", "Preaiubita", "Tony Morrison"),
                Client("aaad", "Groza Adriana"), "2019.11.17",
                "2019.11.19"))
     repoRental.add(
         Rental("0005", Book("0008", "Preaiubita", "Tony Morrison"),
                Client("aaad", "Groza Adriana"), "2019.11.24",
                "2019.11.27"))
     repoRental.add(
         Rental("0006", Book("0002", "Jane Eyre", "Charlotte Bronte"),
                Client("aaad", "Groza Adriana"), "2019.11.20",
                "2019.11.23"))
     validateRental = ValidateRental()
     serviceBooks = ServiceBooks(repoBooks, validateBook)
     serviceClients = ServiceClients(repoClients, validateClient)
     serviceRental = ServiceRental(repoRental, repoBooks, repoClients,
                                   validateRental)
     l = serviceRental.most_active_clients()
     self.assertEqual(l[16], [Client("aaaa", "Groza Ionut")])
Exemple #10
0
 def test_most_rented_authors(self):
     repoRental = Repo()
     repoClients = Repo()
     repoBooks = Repo()
     validateBook = ValidateBook()
     repoBooks.add(Book("0000", "Portretul lui Dorian Gray", "Oscar Wilde"))
     repoBooks.add(Book("0001", "La rascruce de vanturi", "Emilly Bronte"))
     repoBooks.add(Book("0002", "Jane Eyre", "Charlotte Bronte"))
     validateClient = ValidateClient()
     repoClients.add(Client("aaaa", "Groza Ionut"))
     repoClients.add(Client("aaab", "Groza Sami"))
     repoClients.add(Client("aaac", "Groza Marius"))
     repoRental.add(
         Rental("0000",
                Book("0007", "Sa ucizi o pasare cantatoare", "Harper Lee"),
                Client("aaaa", "Groza Ionut"), "data", "data"))
     repoRental.add(
         Rental("0001", Book("0002", "Jane Eyre", "Charlotte Bronte"),
                Client("aaad", "Groza Adriana"), "data", ""))
     repoRental.add(
         Rental("0002",
                Book("0007", "Sa ucizi o pasare cantatoare", "Harper Lee"),
                Client("aaaa", "Groza Ionut"), "data", ""))
     validateRental = ValidateRental()
     serviceBooks = ServiceBooks(repoBooks, validateBook)
     serviceClients = ServiceClients(repoClients, validateClient)
     serviceRental = ServiceRental(repoRental, repoBooks, repoClients,
                                   validateRental)
     l = serviceRental.most_rented_authors()
     self.assertEqual(l[2], ["Harper Lee"])
Exemple #11
0
 def test_repo_rental(self):
     repoRental = Repo()
     book = Book("0000", "title", "author")
     client = Client("aaaa", "Jenel")
     rental = Rental("0000", book, client, "12.12.2012", "17.01.2013")
     assert (repoRental.length() == 0)
     repoRental.add(rental)
     assert (repoRental.length() == 1)
     try:
         repoRental.add(rental)
         assert (False)
     except RepoError as re:
         assert (str(re) == "existing id!\n")
     assert (repoRental.length() == 1)
     non_existing_rental = Rental("0001", book, client, "date", "date")
     try:
         repoRental.search(non_existing_rental)
         assert (False)
     except RepoError as re:
         assert (str(re) == "inexisting id!\n")
     assert (repoRental.get_all() == [rental])