Ejemplo n.º 1
0
    def searchBooks(self, command, characteristic):
        '''
        Function that searches for a book after a given characteristic
        Input: command - the category in which the search is made(id, title, author, description)
        Precondition: command - integer
                      characteristic - string
        Output: -
        Postcondition: - 
        '''
        book = Book()
        books = []
        cnt = 0
        i = 0
        while i < len(self.__repoBooks):
            search = self.__repoBooks.searchBook(characteristic, command, i)
            book = search[0]
            if book.get_book_id() > -1:
                cnt += 1
                i = search[1]
                books.append(book)
            i += 1
        if cnt == 0:
            raise ValueError("This book couldn't be found")

        return books
Ejemplo n.º 2
0
class Tests(unittest.TestCase):
    def setUp(self):
        self.__bookId = 5
        self.__title = "Fratii Karamazov"
        self.__author = "Dostoievski"
        self.__description = "pam pam"
        self.__clientId = 7
        self.__name = "Ion Iliescu"
        self.__rentalId = 16
        self.__rentedDate = 20
        self.__dueDate = 13
        self.__returnedDate = 30
        self.__book = Book(self.__bookId, self.__title, self.__description,
                           self.__author)
        self.__client = Client(self.__clientId, self.__name)
        self.__rental = Rental(self.__rentalId, self.__bookId, self.__clientId,
                               self.__rentedDate, self.__dueDate,
                               self.__returnedDate)
        self.__repoBook = RepoBook()
        self.__repoClient = RepoClient()
        self.__undoList = UndoRedo()
        self.__repoRental = RepoRental(self.__repoBook, self.__repoClient)
        self.__validBook = BookValidator()
        self.__validClient = ClientValidator()
        self.__validRental = RepoValidator(self.__repoBook, self.__repoClient)
        self.__bookService = ServiceBook(self.__repoBook, self.__validBook,
                                         self.__undoList)
        self.__clientService = ServiceClient(self.__repoClient,
                                             self.__validClient,
                                             self.__undoList)
        self.__rentalService = ServiceRental(self.__repoBook,
                                             self.__repoClient,
                                             self.__validRental,
                                             self.__repoRental,
                                             self.__undoList)

    def testModels(self):
        self.assertEquals(self.__book.get_book_id(), self.__bookId)
        self.assertEquals(self.__client.get_name(), self.__name)
        self.assertEquals(self.__rental.get_rental_id(), self.__rentalId)
        #self.assertEquals self.__rental.get_number_of_rentals() == self.__numberOfRentals

    def testRepository(self):
        self.assertEquals(len(self.__repoBook), 0)
        self.__repoBook.addElement(self.__book, 0)
        self.assertEquals(len(self.__repoBook), 1)
        new_book = Book(3, "Ion", "glasul pamantului/glasul iubirii",
                        "Liviu Rebreanu")
        self.__repoBook.addElement(new_book, 0)
        self.assertEquals(len(self.__repoBook), 2)
        try:
            self.__repoBook.addElement(self.__book, 0)
            self.assertEquals(False)
        except ValueError as re:
            self.assertEquals(str(re), "existing element")

        self.assertEquals(len(self.__repoClient), 0)
        self.__repoClient.addElement(self.__client, 0)
        self.assertEquals(len(self.__repoClient), 1)
        new_client = Client(2, "Justin Trudeau")
        self.__repoClient.addElement(new_client, 0)
        self.assertEquals(len(self.__repoClient), 2)
        try:
            self.__repoClient.addElement(self.__client, 0)
            self.assertEquals(False)
        except ValueError as re:
            self.assertEquals(str(re), "existing element")
        self.__repoClient.removeElement(new_client.get_client_id())
        self.assertEquals(len(self.__repoClient), 1)
        try:
            self.__repoClient.removeElement(new_client.get_client_id())
            self.assertEquals(False)
        except ValueError as re:
            self.assertEquals(str(re), "inexisting element")

        #self.__repo.printBooks()
        new_book = Book(3, "HP", "JK Rowling", "magic")
        self.__repoBook.updateElement(new_book, 0)
        cnt = self.__repoBook.searchElement1(new_book)
        cnt = int(cnt)

    def testBusiness(self):
        self.__repoBook = RepoBook()
        self.__business = ServiceBook(self.__repoBook, self.__validBook,
                                      self.__undoList)
        self.assertEquals(len(self.__business), 0)

        self.__business.addNewBook(self.__bookId, self.__title, self.__author,
                                   self.__description)
        self.assertEquals(len(self.__business), 1)
        self.__business.addNewBook(15, "GoT", "George RR Martin", "abcd")
        self.assertEquals(len(self.__business), 2)

        self.__repoClient = RepoClient()
        self.__business = ServiceClient(self.__repoClient, self.__validClient,
                                        self.__undoList)
        self.__business.addNewClient(self.__clientId, self.__name)
        self.assertEquals(len(self.__business), 1)
        self.__business.addNewClient(5, "Nicolae Ceausescu")
        self.assertEquals(len(self.__business), 2)
        element = Client(5, "Traian Basescu")
        self.__repoClient.updateElement(element, 0)
        search = self.__repoClient.searchElement(5, 2)
        self.assertEquals(search.get_name(), "Traian Basescu")
        self.__business.removeClient(5, "Nicolae Ceausescu")
        self.assertEquals(len(self.__business), 1)

        self.__repoBook = RepoBook()
        self.__business = ServiceBook(self.__repoBook, self.__validBook,
                                      self.__undoList)
        self.__business.addNewBook(23, "De veghe in lanul de secara",
                                   "JD Salinger", "Roman")
        self.__business.addNewBook(15, "Martianul", "Andy Weir",
                                   "I-a placut lui Leo")
        self.__business.removeBook(15, 0)
        self.assertEquals(len(self.__business), 1)
        element = Book(15, "1984", "George Orwell", "Tot lui Leo i-a placut")
        self.__repoBook.addElement(element, 0)
        element = Book(15, "1984", "Pam pam", "Tot lui Leo i-a placut")
        self.__repoBook.updateElement(element, 0)
        search = self.__repoBook.searchElement(15, 1)
        self.assertEquals(search.get_author(), "Pam pam")

    def testRent(self):
        pass