Example #1
0
        public void GetCheckedOutCopies_OnlyReturnsCheckedoutBook()
        {
            DateTime dueDate = new DateTime(2017, 6, 1);

            Patron newPatron = new Patron("Joe");

            newPatron.Save();

            Book newBook = new Book("Gone With the Wind");

            newBook.Save();

            Copy copy1 = new Copy(newBook.GetId());

            copy1.Save();
            newPatron.Checkout(copy1.GetId(), newPatron.GetId(), dueDate);

            Copy copy2 = new Copy(newBook.GetId());

            copy2.Save();
            Checkout newCheckout = newPatron.Checkout(copy2.GetId(), newPatron.GetId(), dueDate);

            newCheckout.CheckIn();


            DateTime    currentDate    = new DateTime(2017, 7, 1);
            List <Copy> expectedResult = new List <Copy> {
                copy1
            };
            List <Copy> actualResult = newPatron.GetCheckedOutCopies(currentDate);

            Assert.Equal(expectedResult, actualResult);
        }
Example #2
0
        public void AddCopy(Copy selectedCopy)
        {
            int isAvailable = selectedCopy.GetAvailable();

            if (isAvailable == 1)
            {
                SqlConnection conn = DB.Connection();
                conn.Open();

                SqlCommand cmd = new SqlCommand("INSERT INTO checkout (patron_id, copy_id, current_checkout, due_date) VALUES (@PatronId, @CopyId, @CurrentCheckout, @DueDate); UPDATE copy SET available = @Available WHERE id = @CopyId;", conn);

                cmd.Parameters.Add(new SqlParameter("@PatronId", this.GetId().ToString()));
                cmd.Parameters.Add(new SqlParameter("@CopyId", selectedCopy.GetId().ToString()));
                cmd.Parameters.Add(new SqlParameter("@CurrentCheckout", "1"));
                //TODO Later on, lets figure out a way to get the current date to plug into duedate.
                cmd.Parameters.Add(new SqlParameter("@DueDate", "2017-03-02"));
                cmd.Parameters.Add(new SqlParameter("@Available", "0"));

                cmd.ExecuteNonQuery();

                if (conn != null)
                {
                    conn.Close();
                }

                selectedCopy.SetAvailable(0);
            }
        }
Example #3
0
        public void AddCopy(Copy newCopy)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            SqlCommand cmd = new SqlCommand("INSERT INTO checkouts (patron_id, copy_id) VALUES (@PatronId, @CopyId);", conn);

            SqlParameter patronIdParameter = new SqlParameter();

            patronIdParameter.ParameterName = "@PatronId";
            patronIdParameter.Value         = this.GetId();
            cmd.Parameters.Add(patronIdParameter);

            SqlParameter copyIdParameter = new SqlParameter();

            copyIdParameter.ParameterName = "@CopyId";
            copyIdParameter.Value         = newCopy.GetId();
            cmd.Parameters.Add(copyIdParameter);

            cmd.ExecuteNonQuery();

            if (conn != null)
            {
                conn.Close();
            }
        }
Example #4
0
        public void GetCheckedOutCopies_ReturnListOfCopies()
        {
            Patron newPatron = new Patron("Joe");

            newPatron.Save();

            Book newBook = new Book("Gone With the Wind");

            newBook.Save();

            Copy newCopy = new Copy(newBook.GetId());

            newCopy.Save();


            DateTime dueDate = new DateTime(2017, 6, 1);

            newPatron.Checkout(newCopy.GetId(), newPatron.GetId(), dueDate);

            DateTime    currentDate    = new DateTime(2017, 7, 1);
            List <Copy> expectedResult = new List <Copy> {
                newCopy
            };
            List <Copy> actualResult = newPatron.GetCheckedOutCopies(currentDate);



            Assert.Equal(expectedResult, actualResult);
        }
Example #5
0
        public void T5_Find_FindsCopyInDatabase()
        {
            Copy testCopy = new Copy(1);
              testCopy.Save();

              Copy foundCopy = Copy.Find(testCopy.GetId());

              Assert.Equal(testCopy, foundCopy);
        }
Example #6
0
        public void Test_Find_FindCopyInDatabase()
        {
            Copy testCopy = new Copy ("New", 1, new DateTime(2016, 7, 25), new DateTime(2016, 8, 25));
             testCopy.Save();

             Copy result = Copy.Find(testCopy.GetId());

             Assert.Equal(testCopy, result);
        }
Example #7
0
        public void FindById_ReturnsCopyWhenSearchedById()
        {
            Copy newCopy = new Copy(1);

            newCopy.Save();

            Copy result = Copy.FindById(newCopy.GetId());

            Assert.Equal(newCopy, result);
        }
Example #8
0
        public void T5_Find_FindsCopyInDatabase()
        {
            Copy testCopy = new Copy(1);

            testCopy.Save();

            Copy foundCopy = Copy.Find(testCopy.GetId());

            Assert.Equal(testCopy, foundCopy);
        }
Example #9
0
        public void T4_Save_AssignsIdToCopy()
        {
            Copy testCopy = new Copy(2);
              testCopy.Save();

              Copy savedCopy = Copy.GetAll()[0];
              int result = savedCopy.GetId();
              int testId = testCopy.GetId();

              Assert.Equal(testId, result);
        }
Example #10
0
        public void T4_Save_AssignsIdToCopy()
        {
            Copy testCopy = new Copy(2);

            testCopy.Save();

            Copy savedCopy = Copy.GetAll()[0];
            int  result    = savedCopy.GetId();
            int  testId    = testCopy.GetId();

            Assert.Equal(testId, result);
        }
Example #11
0
 public override bool Equals(System.Object otherCopy)
 {
     if (!(otherCopy is Copy))
     {
         return(false);
     }
     else
     {
         Copy newCopy           = (Copy)otherCopy;
         bool idEquality        = (this.GetId() == newCopy.GetId());
         bool bookIdEquality    = (this.GetBookId() == newCopy.GetBookId());
         bool availableEquality = (this.GetAvailability() == newCopy.GetAvailability());
         return(idEquality && bookIdEquality && availableEquality);
     }
 }
Example #12
0
        public override bool Equals(System.Object otherCopy)
        {
            if (!(otherCopy is Copy))
            {
                return(false);
            }
            else
            {
                Copy newCopy        = (Copy)otherCopy;
                bool idEquality     = this.GetId() == newCopy.GetId();
                bool BookIdEquality = this.GetBookId() == newCopy.GetBookId();

                return(idEquality && BookIdEquality);
            }
        }
Example #13
0
        public void Test_Find_FindsCopyInDatabase()
        {
            //Arrange
            Copy testCopy1 = new Copy(1, 15);

            testCopy1.Save();
            Copy testCopy2 = new Copy(2, 20);

            testCopy2.Save();

            //Act
            Copy result = Copy.Find(testCopy2.GetId());

            //Assert
            Assert.Equal(testCopy2, result);
        }
Example #14
0
        public void Test_Save_AssignsIdToCopyObject()
        {
            //Arrange
            Copy testCopy = new Copy(1, 15);

            testCopy.Save();

            //Act
            Copy savedCopy = Copy.GetAll()[0];

            int result = savedCopy.GetId();
            int testId = testCopy.GetId();

            //Assert
            Assert.Equal(testId, result);
        }
Example #15
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]);
        }
Example #16
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]);
        }
Example #17
0
        public void CheckIn(Copy selectedCopy)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            SqlCommand cmd = new SqlCommand("UPDATE copy SET available = @Available WHERE id = @CopyId; UPDATE checkout SET current_checkout = @CurrentCheckout WHERE copy_id = @CopyId AND patron_id = @PatronId;", conn);

            cmd.Parameters.Add(new SqlParameter("@Available", "1"));
            cmd.Parameters.Add(new SqlParameter("@CopyId", selectedCopy.GetId().ToString()));
            cmd.Parameters.Add(new SqlParameter("@CurrentCheckout", "0"));
            cmd.Parameters.Add(new SqlParameter("@PatronId", this.GetId().ToString()));

            cmd.ExecuteNonQuery();

            if (conn != null)
            {
                conn.Close();
            }

            selectedCopy.SetAvailable(1);
        }
Example #18
0
        public void AddCopy(Copy newCopy)
        {
            SqlConnection conn = DB.Connection();
              conn.Open();

              SqlCommand cmd = new SqlCommand ("INSERT INTO checkouts (copy_id, patron_id) VALUES (@CopyId, @PatronId);", conn);

              SqlParameter copyIdParameter = new SqlParameter();
              copyIdParameter.ParameterName = "@CopyId";
              copyIdParameter.Value = newCopy.GetId();

              SqlParameter patronIdParameter = new SqlParameter();
              patronIdParameter.ParameterName = "@PatronId";
              patronIdParameter.Value = this.GetId();

              cmd.Parameters.Add(copyIdParameter);
              cmd.Parameters.Add(patronIdParameter);

              cmd.ExecuteNonQuery();

              if (conn != null)
              {
            conn.Close();
              }
        }
Example #19
0
        public void Test_Update_UpdateCopyInDatabase()
        {
            Copy newCopy = new Copy ("New", 1, new DateTime(2016, 7, 25), new DateTime(2016, 8, 25));
             newCopy.Save();
             newCopy.SetCondition("Worn & Torn");
             newCopy.Update();

             Copy updatedCopy = Copy.Find(newCopy.GetId());

             Assert.Equal(newCopy.GetCondition(), updatedCopy.GetCondition());
        }