def test_book_can_borrow_reserved_book_if_only_reserver(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.check_out('RESERVER') assert_equals(len(book.reservations), 0)
def test_book_can_borrow_reserved_book_if_first_reserver(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.reserve('ANOTHER RESERVER') book.check_out('RESERVER') assert_equals(len(book.reservations), 1) assert_equals('ANOTHER RESERVER', book.reservations[0])
def test_options_with_borrower_with_many_reservers_by_reserver(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.check_out('BORROWER') book.reserve('RESERVER') book.reserve('RESERVER 2') book.reserve('RESERVER 3') expected = {} expected[Book.CAN_CANCEL] = True assert_equals(expected, book.get_options('RESERVER'))
def test_book_cannot_be_borrowed_when_reserved(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.check_out('BORROWER')
def test_book_can_only_be_borrowed_once(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.check_out('BORROWER') book.check_out('ANOTHER BORROWER')
def test_book_borrow_new_book(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.check_out('BORROWER') assert_equals(book.status(), Book.BORROWED) assert_equals(book.borrower, 'BORROWER')
def test_options_for_borrower(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.check_out('BORROWER') expected = { Book.CAN_RETURN: True } assert_equals(expected, book.get_options('BORROWER'))
def test_book_cannot_return_book_if_not_borrower(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.check_out('BORROWER') book.check_in('ANOTHER BORROWER')
def test_book_cannot_borrow_reserved_book_if_later_reserver(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.reserve('ANOTHER RESERVER') book.check_out('ANOTHER RESERVER')