Beispiel #1
0
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)
Beispiel #2
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])
Beispiel #3
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'))
Beispiel #4
0
def test_book_cannot_be_borrowed_when_reserved():
    book = Book('TITLE', 'DESCRIPTION', 'ISBN')
    book.reserve('RESERVER')

    book.check_out('BORROWER')
Beispiel #5
0
def test_book_can_only_be_borrowed_once():
    book = Book('TITLE', 'DESCRIPTION', 'ISBN')
    book.check_out('BORROWER')

    book.check_out('ANOTHER BORROWER')
Beispiel #6
0
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')
Beispiel #7
0
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'))
Beispiel #8
0
def test_book_cannot_return_book_if_not_borrower():
    book = Book('TITLE', 'DESCRIPTION', 'ISBN')
    book.check_out('BORROWER')

    book.check_in('ANOTHER BORROWER')
Beispiel #9
0
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')