public void RepairSetsBookStateToAvailable() { var book = new Book("author", "title", "call number", 1); // Must be set to Damaged to be repaired. book.State = BookState.DAMAGED; book.Repair(); Assert.Equal(BookState.AVAILABLE, book.State); }
public void RepairThrowsExceptionIfBookIsNotDamaged() { var book = new Book("author", "title", "call number", 1); book.State = BookState.ON_LOAN; var ex = Assert.Throws<InvalidOperationException>(() => book.Repair()); Assert.Equal("Book is not damaged so cannot be repaired", ex.Message); }
public void WhenBookIsDamagedAndRepairedShouldBeAvailable() { var book = new Book("author", "title", "call number", 1); var member = new Member("first", "last", "phone", "email", 1); var loan = new Loan(book, member, DateTime.Today, DateTime.Today.AddDays(7)); book.Borrow(loan); book.ReturnBook(true); book.Repair(); Assert.Equal(BookState.AVAILABLE, book.State); }