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

    book.check_out('BORROWER')
示例#9
0
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')
示例#10
0
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'))
示例#11
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')