Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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());
        }
Esempio n. 9
0
        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]);
        }
Esempio n. 10
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);
        }
Esempio n. 11
0
        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());
        }
Esempio n. 12
0
        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]);
        }
Esempio n. 13
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]);
            };
        }