public void Patron_ReturnCheckoutItems() { Patron newPatron = new Patron("Johnny English", "555-555-5555"); newPatron.Save(); Author newAuthor = new Author("Ernest Hemingway"); newAuthor.Save(); Book newBook = new Book("Old Man and the Sea", 5); newBook.Save(); Book otherBook = new Book("Farewell to Arms", 7); otherBook.Save(); Checkout newCheckout = new Checkout("2017/03/30", newPatron.GetId(), newBook.GetId()); newCheckout.Save(newBook); Checkout otherCheckout = new Checkout("2017/01/30", newPatron.GetId(), otherBook.GetId()); otherCheckout.Save(newBook); List <Checkout> actual = newPatron.GetCheckouts(); List <Checkout> expected = new List <Checkout> { otherCheckout, newCheckout }; Assert.Equal(expected, actual); }
public void Checkout_Return_DoNotRemoveFromDatabase_4() { Book newBook = new Book("Old Man and the Sea", 4); newBook.Save(); Checkout newCheckout = new Checkout("2017/05/1", 1, 1); newCheckout.Save(newBook); Checkout.Return(newCheckout.GetId()); Assert.Equal("returned", Checkout.GetAll()[0].GetDueDate()); }
public void Checkout_Find_3() { Checkout newCheckout = new Checkout("2017/05/1", 1, 1); Book newBook = new Book("Old Man and the Sea", 4); newBook.Save(); newCheckout.Save(newBook); Checkout foundCheckout = Checkout.Find(newCheckout.GetId()); Assert.Equal(newCheckout, foundCheckout); }
public void FindById_ReturnsCheckoutWhenSearchedById() { DateTime dueDate = new DateTime(2017, 1, 1); Checkout newCheckout = new Checkout(1, 2, dueDate); newCheckout.Save(); Checkout result = Checkout.FindById(newCheckout.GetId()); Assert.Equal(newCheckout, result); }
public void CheckIn_MakeCheckInEqualToTrue() { DateTime dueDate = new DateTime(2017, 1, 1); Checkout newCheckout = new Checkout(1, 2, dueDate); newCheckout.Save(); newCheckout.CheckIn(); bool expectedResult = true; bool actualResult = newCheckout.GetCheckInStatus(); Assert.Equal(expectedResult, actualResult); }
public void Save_SavesNewCheckout() { DateTime dueDate = new DateTime(2017, 1, 1); Checkout newCheckout = new Checkout(1, 2, dueDate); newCheckout.Save(); List <Checkout> expectedResult = new List <Checkout> { newCheckout }; List <Checkout> actual = Checkout.GetAll(); Assert.Equal(expectedResult, actual); }
public void Delete_DeletesCheckoutFromDatabase() { DateTime dueDate = new DateTime(2017, 1, 1); Checkout newCheckout = new Checkout(1, 2, dueDate); newCheckout.Save(); newCheckout.Delete(); List <Checkout> expectedResult = new List <Checkout> { }; List <Checkout> actualResult = Checkout.GetAll(); Assert.Equal(expectedResult, actualResult); }
public void Save_SavesCheckoutToDatabase_2() { Author newAuthor = new Author("Ernest Hemingway"); newAuthor.Save(); Book newBook = new Book("Old Man and the Sea", 5); newBook.Save(); newBook.AddAuthor(newAuthor.GetId()); Patron newPatron = new Patron("Johnny English", "555-555-5555"); newPatron.Save(); Checkout newCheckout = new Checkout("2017/05/1", newPatron.GetId(), newBook.GetId()); newCheckout.Save(newBook); Assert.Equal(4, newBook.GetCopies()); }
public void T1_Checkout_CreatesACheckoutRecord() { Patron testPatron = new Patron("Judy"); testPatron.Save(); Copy testCopy = new Copy(5); testCopy.Save(); DateTime checkoutDate = new DateTime(2016,08,04); DateTime dueDate = new DateTime(2017,01,02); Checkout newCheckout = new Checkout(testCopy.GetId(), testPatron.GetId(), checkoutDate, dueDate); newCheckout.Save(); List<Checkout> result = Checkout.GetAll(); Assert.Equal(newCheckout, result[0]); }
public void Return_SpecificCheckAndAddCopyToBook() { Author newAuthor = new Author("Ernest Hemingway"); newAuthor.Save(); Book newBook = new Book("Old Man and the Sea", 5); newBook.Save(); newBook.AddAuthor(newAuthor.GetId()); Patron newPatron = new Patron("Johnny English", "555-555-5555"); newPatron.Save(); Checkout newCheckout = new Checkout("2017/05/1", newPatron.GetId(), newBook.GetId()); newCheckout.Save(newBook); Checkout.Return(newCheckout.GetId()); int actual = Book.GetAll()[0].GetCopies(); Assert.Equal(5, actual); }
public void Update_UpdateInDatabase_true() { //Arrange Author newAuthor = new Author("Ernest Hemingway"); newAuthor.Save(); Book newBook = new Book("Old Man and the Sea", 5); newBook.Save(); newBook.AddAuthor(newAuthor.GetId()); Patron newPatron = new Patron("Johnny English", "555-555-5555"); newPatron.Save(); Checkout newCheckout = new Checkout("2017/05/1", newPatron.GetId(), newBook.GetId()); newCheckout.Save(newBook); //Act newCheckout.Update("2017/06/12"); string result = newCheckout.GetDueDate(); //Assert Assert.Equal("2017/06/12", result); // Assert.Equal(newName, result.GetName()); }
public void T1_Checkout_CreatesACheckoutRecord() { Patron testPatron = new Patron("Judy"); testPatron.Save(); Copy testCopy = new Copy(5); testCopy.Save(); DateTime checkoutDate = new DateTime(2016, 08, 04); DateTime dueDate = new DateTime(2017, 01, 02); Checkout newCheckout = new Checkout(testCopy.GetId(), testPatron.GetId(), checkoutDate, dueDate); newCheckout.Save(); List <Checkout> result = Checkout.GetAll(); Assert.Equal(newCheckout, result[0]); }
public HomeModule() { string thisDay = "1"; Get["/"] = _ => { return(View["index.cshtml", ModelMaker()]); }; Post["/overdue-date"] = _ => { thisDay = Request.Form["current-day"]; Dictionary <string, object> model = ModelMaker(); model.Add("Overdue", Checkout.GetAllOverdue(thisDay)); return(View["overdue.cshtml", model]); }; Post["/add-book"] = _ => { Book newBook = new Book(Request.Form["book-name"], Request.Form["copies"]); newBook.Save(); if (Request.Form["author-name"] != null) { Author newAuthor = new Author(Request.Form["author-name"]); newAuthor.Save(); newBook.AddAuthor(newAuthor.GetId()); } Dictionary <string, object> model = ModelMaker(); model.Add("Book", newBook); return(View["book.cshtml", model]); }; Post["/add-author"] = _ => { Author newAuthor = new Author(Request.Form["author-name"]); newAuthor.Save(); Dictionary <string, object> model = ModelMaker(); model.Add("Author", newAuthor); return(View["author.cshtml", model]); }; Post["/patron/{patronId}/return/{id}"] = parameters => { Checkout.Return(parameters.id); Dictionary <string, object> model = ModelMaker(); model.Add("Patron", Patron.Find(parameters.patronId)); model.Add("Patron Checkouts", Patron.Find(parameters.patronId).GetCheckouts()); return(View["patron.cshtml", model]); }; Post["/add-patron"] = _ => { Patron newPatron = new Patron(Request.Form["patron-name"], Request.Form["patron-phone"]); newPatron.Save(); Dictionary <string, object> model = ModelMaker(); model.Add("Patron", newPatron); model.Add("Patron Checkouts", newPatron.GetCheckouts()); return(View["patron.cshtml", model]); }; Get["/patron/{id}"] = parameters => { Dictionary <string, object> model = ModelMaker(); model.Add("Patron", Patron.Find(parameters.id)); model.Add("Patron Checkouts", Patron.Find(parameters.id).GetCheckouts()); return(View["patron.cshtml", model]); }; Post["/patron/{id}"] = parameters => { Checkout newCheckout = new Checkout(Request.Form["due-date"], parameters.id, Request.Form["booklist"]); newCheckout.Save(Book.Find(Request.Form["booklist"])); Dictionary <string, object> model = ModelMaker(); model.Add("Patron", Patron.Find(parameters.id)); model.Add("Patron Checkouts", Patron.Find(parameters.id).GetCheckouts()); return(View["patron.cshtml", model]); }; Patch["/patron/{id}"] = parameters => { Patron.Find(parameters.id).Update(Request.Form["new-name"], Request.Form["new-phone"]); Dictionary <string, object> model = ModelMaker(); model.Add("Patron", Patron.Find(parameters.id)); model.Add("Patron Checkouts", Patron.Find(parameters.id).GetCheckouts()); return(View["patron.cshtml", model]); }; Get["/author/{id}"] = parameters => { Dictionary <string, object> model = ModelMaker(); model.Add("Author", Author.Find(parameters.id)); return(View["author.cshtml", model]); }; Post["/author/{id}"] = parameters => { Author.Find(parameters.id).AddBook(Request.Form["book-id"]); Dictionary <string, object> model = ModelMaker(); model.Add("Author", Author.Find(parameters.id)); return(View["author.cshtml", model]); }; Patch["/author/{id}"] = parameters => { Author.Find(parameters.id).Update(Request.Form["new-name"]); Dictionary <string, object> model = ModelMaker(); model.Add("Author", Author.Find(parameters.id)); return(View["author.cshtml", model]); }; Delete["/author/{id}"] = parameters => { Author.Delete(parameters.id); return(View["index.cshtml", ModelMaker()]); }; Get["/book/{id}"] = parameters => { Dictionary <string, object> model = ModelMaker(); model.Add("Book", Book.Find(parameters.id)); return(View["book.cshtml", model]); }; Delete["/book/{id}"] = parameters => { Dictionary <string, object> model = ModelMaker(); model.Add("Overdue", Checkout.GetAllOverdue(thisDay)); Book.Delete(parameters.id); return(View["index.cshtml", model]); }; Post["/book/{id}"] = parameters => { Book.Find(parameters.id).AddAuthor(Request.Form["author-id"]); Dictionary <string, object> model = ModelMaker(); model.Add("Book", Book.Find(parameters.id)); return(View["book.cshtml", model]); }; Post["/book/{id}/remove_author"] = parameters => { Book.Find(parameters.id).RemoveAuthor(Request.Form["author-id"]); Dictionary <string, object> model = ModelMaker(); model.Add("Book", Book.Find(parameters.id)); return(View["book.cshtml", model]); }; Patch["/book/{id}"] = parameters => { Book.Find(parameters.id).Update(Request.Form["new-name"], Request.Form["new-copies"]); Dictionary <string, object> model = ModelMaker(); model.Add("Book", Book.Find(parameters.id)); return(View["book.cshtml", model]); }; }