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_reserve_new_book_once(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.reserve('RESERVER') assert_equals(len(book.reservations), 1) assert_in('RESERVER', book.reservations)
def test_book_can_reserve_new_book_with_more_than_one_user(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.reserve('ANOTHER RESERVER') assert_equals(len(book.reservations), 2) assert_equals('RESERVER', book.reservations[0]) assert_equals('ANOTHER RESERVER', book.reservations[1])
def test_options_no_borrower_with_many_reservers_by_other(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.reserve('RESERVER 2') book.reserve('RESERVER 3') expected = { Book.CAN_RESERVE: True } assert_equals(expected, book.get_options('OTHER'))
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_can_un_reserve_book(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.reserve('ANOTHER RESERVER') book.reserve('YET ANOTHER RESERVER') book.un_reserve('ANOTHER RESERVER') book.un_reserve('RESERVER') book.un_reserve('YET ANOTHER RESERVER') assert_equals(0, len(book.reservations))
def test_book_cannot_be_borrowed_when_reserved(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.check_out('BORROWER')
def test_book_cannot_un_reserve_book_when_not_reserved_by_you(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') book.un_reserve('ANOTHER RESERVER')
def test_options_no_borrower_with_one_reserver_by_reserver(): book = Book('TITLE', 'DESCRIPTION', 'ISBN') book.reserve('RESERVER') expected = { Book.CAN_BORROW: True, Book.CAN_CANCEL: True } assert_equals(expected, book.get_options('RESERVER'))
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')