Beispiel #1
0
        public void Test21()
        {
            Initial();
            int[]    timeCheat = { 05, 03, 2018 };
            DateTime Now       = new DateTime(2018, 04, 02);

            Faculty           p1 = new Faculty("p1");
            Student           s  = new Student("s");
            VisitingProfessor v  = new VisitingProfessor("v");

            DocClass d1 = new DocClass("Introduction to Algorithms");
            DocClass d2 = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");

            p1.CheckOut(d1.ID, timeCheat);
            p1.CheckOut(d2.ID, timeCheat);
            s.CheckOut(d1.ID, timeCheat);
            s.CheckOut(d2.ID, timeCheat);
            v.CheckOut(d1.ID, timeCheat);
            v.CheckOut(d2.ID, timeCheat);

            Debug.Assert(SDM.LMS.OverdueTime(p1.PersonID, d1.ID, Now) == 0);
            Debug.Assert(SDM.LMS.OverdueTime(p1.PersonID, d2.ID, Now) == 0);
            Debug.Assert(SDM.LMS.GetUserFineForDoc(p1.PersonID, d1.ID, Now) == 0);
            Debug.Assert(SDM.LMS.GetUserFineForDoc(p1.PersonID, d2.ID, Now) == 0);

            Debug.Assert(SDM.LMS.OverdueTime(s.PersonID, d1.ID, Now) == 7);
            Debug.Assert(SDM.LMS.OverdueTime(s.PersonID, d2.ID, Now) == 14);
            Debug.Assert(SDM.LMS.GetUserFineForDoc(s.PersonID, d1.ID, Now) == 700);
            Debug.Assert(SDM.LMS.GetUserFineForDoc(s.PersonID, d2.ID, Now) == 1400);

            Debug.Assert(SDM.LMS.OverdueTime(v.PersonID, d1.ID, Now) == 21);
            Debug.Assert(SDM.LMS.OverdueTime(v.PersonID, d2.ID, Now) == 21);
            Debug.Assert(SDM.LMS.GetUserFineForDoc(v.PersonID, d1.ID, Now) == 2100);
            Debug.Assert(SDM.LMS.GetUserFineForDoc(v.PersonID, d2.ID, Now) == 1700);
        }
Beispiel #2
0
        public void Test17()
        {
            Test11();

            Librarian lb = new Librarian("lb");
            Faculty   p1 = new Faculty("Sergey Afonso");
            Student   p2 = new Student("Nadia Teixeira");

            admin.ModifyLibrarian(lb.PersonID, "lb", "lb", "lb", 2);

            DocClass b1  = new DocClass("Introduction to Algorithms");
            DocClass b2  = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");
            DocClass b3  = new DocClass("The Mythical Man-month");
            DocClass av1 = new DocClass("Null References: The Billion Dollar Mistake");
            DocClass av2 = new DocClass("Information Entropy");

            p1.CheckOut(b1.ID);
            p1.CheckOut(b2.ID);
            p1.CheckOut(b3.ID);
            p1.CheckOut(av1.ID);
            p2.CheckOut(b1.ID);
            p2.CheckOut(b2.ID);
            p2.CheckOut(av2.ID);

            List <CheckedOut> CheckedOutInfo = new List <CheckedOut>
            {
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(21).Day, DocumentCheckedOut = "Introduction to Algorithms"
                },
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(14).Day, DocumentCheckedOut = "Design Patterns: Elements of Reusable Object-Oriented Software"
                },
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(14).Day, DocumentCheckedOut = "Information Entropy"
                }
            };

            Debug.Assert(SDM.LMS.CheckUserInfo("Nadia Teixeira", "Via Sacra, 13", "30002", 0, CheckedOutInfo));

            CheckedOutInfo = new List <CheckedOut>
            {
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(28).Day, DocumentCheckedOut = "Introduction to Algorithms"
                },
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(28).Day, DocumentCheckedOut = "Design Patterns: Elements of Reusable Object-Oriented Software"
                },
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(28).Day, DocumentCheckedOut = "The Mythical Man-month"
                },
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(14).Day, DocumentCheckedOut = "Null References: The Billion Dollar Mistake"
                }
            };
            Debug.Assert(SDM.LMS.CheckUserInfo("Sergey Afonso", "Via Margutta, 3", "30001", 1, CheckedOutInfo));
        }
Beispiel #3
0
        public void Test20()
        {
            Initial();

            Faculty p1 = new Faculty("p1");

            DocClass d1 = new DocClass("Introduction to Algorithms");
            DocClass d2 = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");

            p1.CheckOut(d1.ID, new int[] { 05, 03, 2018 });
            p1.CheckOut(d2.ID, new int[] { 05, 03, 2018 });
            p1.ReturnDoc(d2.ID);

            Debug.Assert(SDM.LMS.GetUserFineForDoc(p1.PersonID, d1.ID, new DateTime(2018, 04, 02)) == 0);
        }
Beispiel #4
0
        public void Test23()
        {
            Initial();
            int[] timeCheat = { 31, 03, 2018 };

            Librarian         lb = new Librarian("lb");
            Faculty           p1 = new Faculty("p1");
            Student           s  = new Student("s");
            VisitingProfessor v  = new VisitingProfessor("v");

            admin.ModifyLibrarian(lb.PersonID, "lb", "lb", "lb", 2);

            DocClass d1 = new DocClass("Introduction to Algorithms");
            DocClass d2 = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");

            p1.CheckOut(d1.ID, timeCheat);
            s.CheckOut(d2.ID, timeCheat);
            v.CheckOut(d2.ID, timeCheat);
            lb.OutstandingRequest(d2.ID);

            timeCheat = new int[] { 02, 04, 2018 };
            DateTime Now = new DateTime(2018, 04, 14);

            p1.RenewDoc(d1.ID, timeCheat);
            s.RenewDoc(d2.ID, timeCheat);
            v.RenewDoc(d2.ID, timeCheat);

            Debug.Assert(SDM.LMS.GetCheckout(p1.PersonID, d1.ID).TimeToBack.Day == 30);
            Debug.Assert(SDM.LMS.GetCheckout(s.PersonID, d2.ID).TimeToBack.Day == Now.Day);
            Now = new DateTime(2018, 04, 07);
            Debug.Assert(SDM.LMS.GetCheckout(v.PersonID, d2.ID).TimeToBack.Day == Now.Day);
        }
Beispiel #5
0
        public void Test3()
        {
            SDM.LMS.ClearDB();

            SDM.LMS.RegisterUser("st", "st", "st", "st", "st", false);
            SDM.LMS.RegisterUser("ft", "ft", "ft", "ft", "ft", false);
            SDM.LMS.RegisterUser("lb", "lb", "lb", "lb", "lb", true);
            Student   st = new Student("st");
            Faculty   ft = new Faculty("ft");
            Librarian lb = new Librarian("lb");

            admin.ModifyLibrarian(lb.PersonID, "lb", "lb", "lb", 2);

            lb.AddBook("b", "b", "B", 0, "B", "B", 0, false, 1, "");
            DocClass b = new DocClass("b");

            ft.CheckOut(b.ID);

            Debug.Assert(SDM.LMS.GetUser(lb.PersonID) != null);
            Debug.Assert(SDM.LMS.GetUser(ft.PersonID) != null);
            Debug.Assert(SDM.LMS.GetUser(st.PersonID) != null);
            Debug.Assert(SDM.LMS.GetDoc(b.ID) != null);
            Debug.Assert(b.Quantity == 0);
            Debug.Assert(SDM.LMS.GetUserBooks(ft.PersonID, 7, "").Count == 1);
            DataBase.Checkouts checkouts = SDM.LMS.GetCheckout(ft.PersonID, b.ID);
            Debug.Assert(checkouts.TimeToBack.Subtract((DateTime)checkouts.DateTaked).TotalDays / 7 == 4);
        }
Beispiel #6
0
        public void Test18()
        {
            Test11();

            Librarian lb = new Librarian("lb");
            Faculty   p1 = new Faculty("Sergey Afonso");
            Student   p2 = new Student("Nadia Teixeira");

            admin.ModifyLibrarian(lb.PersonID, "lb", "lb", "lb", 2);

            DocClass b1  = new DocClass("Introduction to Algorithms");
            DocClass b2  = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");
            DocClass av1 = new DocClass("Null References: The Billion Dollar Mistake");

            p1.CheckOut(b1.ID, new int[] { 09, 02, 2018 });
            p1.CheckOut(b2.ID, new int[] { 02, 02, 2018 });
            p2.CheckOut(b1.ID, new int[] { 05, 02, 2018 });
            p2.CheckOut(av1.ID, new int[] { 17, 02, 2018 });

            DateTime now = new DateTime(2018, 03, 05);

            List <OverdueInfo> overdueInfos = new List <OverdueInfo>()
            {
                new OverdueInfo {
                    Overdue = (int)now.Subtract(new DateTime(2018, 02, 02).AddDays(28)).TotalDays, DocumentChekedOut = "Design Patterns: Elements of Reusable Object-Oriented Software"
                }
            };

            Debug.Assert(SDM.LMS.CheckUserInfo("Sergey Afonso", "Via Margutta, 3", "30001", 1, overdueInfos, now));

            overdueInfos = new List <OverdueInfo>
            {
                new OverdueInfo {
                    Overdue = (int)now.Subtract(new DateTime(2018, 02, 05).AddDays(21)).TotalDays, DocumentChekedOut = "Introduction to Algorithms"
                },
                new OverdueInfo {
                    Overdue = (int)now.Subtract(new DateTime(2018, 02, 17).AddDays(14)).TotalDays, DocumentChekedOut = "Null References: The Billion Dollar Mistake"
                }
            };
            Debug.Assert(SDM.LMS.CheckUserInfo("Nadia Teixeira", "Via Sacra, 13", "30002", 0, overdueInfos, now));
        }
Beispiel #7
0
        public void Test16()
        {
            Test11();

            Librarian lb = new Librarian("lb");
            Faculty   p1 = new Faculty("Sergey Afonso");
            Student   p3 = new Student("Elvira Espindola");

            admin.ModifyLibrarian(lb.PersonID, "lb", "lb", "lb", 2);

            DocClass b1 = new DocClass("Introduction to Algorithms");
            DocClass b2 = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");

            p1.CheckOut(b1.ID);
            p3.CheckOut(b1.ID);
            p1.CheckOut(b2.ID);

            List <CheckedOut> CheckedOutInfo = new List <CheckedOut>
            {
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(21).Day, DocumentCheckedOut = "Introduction to Algorithms"
                }
            };

            Debug.Assert(SDM.LMS.CheckUserInfo("Elvira Espindola", "Via del Corso, 22", "30003", 0, CheckedOutInfo));

            CheckedOutInfo = new List <CheckedOut>
            {
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(28).Day, DocumentCheckedOut = "Introduction to Algorithms"
                },
                new CheckedOut {
                    CheckOutTime = DateTime.Now.AddDays(28).Day, DocumentCheckedOut = "Design Patterns: Elements of Reusable Object-Oriented Software"
                }
            };
            Debug.Assert(SDM.LMS.CheckUserInfo("Sergey Afonso", "Via Margutta, 3", "30001", 1, CheckedOutInfo));
        }
Beispiel #8
0
        public void Test25()
        {
            Initial();
            int[] dateCheat = { 02, 04, 2018 };

            Faculty           p1 = new Faculty("p1");
            Student           s  = new Student("s");
            VisitingProfessor v  = new VisitingProfessor("v");

            DocClass d3 = new DocClass("Null References: The Billion Dollar Mistake");

            p1.CheckOut(d3.ID, dateCheat);
            s.CheckOut(d3.ID, dateCheat);
            v.CheckOut(d3.ID, dateCheat);

            PriorityQueue <int> pq = SDM.LMS.LoadPQ(d3.ID);

            Debug.Assert(pq.Pop() == v.PersonID);
        }
Beispiel #9
0
        public void Test30()
        {
            Initial();

            Faculty           p1 = new Faculty("p1");
            VisitingProfessor v  = new VisitingProfessor("v");

            DocClass d1 = new DocClass("Introduction to Algorithms");

            p1.CheckOut(d1.ID, new int[] { 26, 03, 2018 });
            p1.RenewDoc(d1.ID, new int[] { 29, 03, 2018 });
            v.CheckOut(d1.ID, new int[] { 29, 03, 2018 });
            v.RenewDoc(d1.ID, new int[] { 30, 03, 2018 });

            List <CheckedOut> checkedOuts = SDM.LMS.GetCheckoutsList("p1");

            Debug.Assert(checkedOuts.First().CheckOutTime == 26);
            Debug.Assert(checkedOuts.First().DocumentCheckedOut == "Introduction to Algorithms");
            checkedOuts = SDM.LMS.GetCheckoutsList("v");
            Debug.Assert(checkedOuts.First().CheckOutTime == 5);
            Debug.Assert(checkedOuts.First().DocumentCheckedOut == "Introduction to Algorithms");
        }
Beispiel #10
0
        public void Test22()
        {
            Initial();
            int[] timeCheat = { 02, 04, 2018 };

            Faculty           p1 = new Faculty("p1");
            Student           s  = new Student("s");
            VisitingProfessor v  = new VisitingProfessor("v");

            DocClass d1 = new DocClass("Introduction to Algorithms");
            DocClass d2 = new DocClass("Design Patterns: Elements of Reusable Object-Oriented Software");

            p1.CheckOut(d1.ID, timeCheat);
            s.CheckOut(d2.ID, timeCheat);
            v.CheckOut(d2.ID, timeCheat);

            p1.RenewDoc(d1.ID, timeCheat);
            s.RenewDoc(d2.ID, timeCheat);
            v.RenewDoc(d2.ID, timeCheat);

            Debug.Assert(SDM.LMS.GetCheckout(p1.PersonID, d1.ID).TimeToBack.Day == 30);
            Debug.Assert(SDM.LMS.GetCheckout(s.PersonID, d2.ID).TimeToBack.Day == 16);
            Debug.Assert(SDM.LMS.GetCheckout(v.PersonID, d2.ID).TimeToBack.Day == 9);
        }
Beispiel #11
0
        public void Test37()
        {
            Test34();

            Faculty           p1  = new Faculty("p1");
            Faculty           p2  = new Faculty("p2");
            Student           s   = new Student("s");
            VisitingProfessor v   = new VisitingProfessor("v");
            Faculty           p3  = new Faculty("p3");
            Librarian         lb3 = new Librarian("lb3");

            DocClass d1 = new DocClass("d1");
            DocClass d2 = new DocClass("d2");
            DocClass d3 = new DocClass("d3");

            SDM.CurrentUser = p1;
            p1.CheckOut(d3.ID);

            SDM.CurrentUser = p2;
            p2.CheckOut(d3.ID);

            SDM.CurrentUser = s;
            s.CheckOut(d3.ID);

            SDM.CurrentUser = v;
            v.CheckOut(d3.ID);

            SDM.CurrentUser = p3;
            p3.CheckOut(d3.ID);

            SDM.CurrentUser = lb3;
            lb3.OutstandingRequest(d3.ID);

            Debug.Assert(d3.IsRequested);
            Debug.Assert(!SDM.LMS.ExistQueueForDoc(d3.ID));
        }