public void Test_RegisterForCourse_StudentIsProfessor()
        {
            MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules);
            RegistrationData data = new RegistrationData(mockDB.Context);

            Student student = new Student
            {
                StudentSchedules = new List <StudentSchedule>(),
                PersonId         = 5
            };

            CourseSchedule schedule = new CourseSchedule
            {
                Capacity         = 3,
                StudentSchedules = new List <StudentSchedule>
                {
                    new StudentSchedule(),
                    new StudentSchedule()
                },
                Schedule = new Schedule
                {
                    StartTime  = new TimeSpan(8, 0, 0),
                    TimeBlocks = 1
                },
                ProfessorId = 5
            };

            mockDB.AddDataEntry(schedule);
            data.RegisterForCourse(student, schedule);

            Assert.Equal(schedule.StudentSchedules.ToList().Count, 2);
            mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Never());
        }
        public void Test_GetNumberOfStudentsInCourse()
        {
            MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules);
            RegistrationData data = new RegistrationData(mockDB.Context);

            CourseSchedule schedule = new CourseSchedule
            {
                Capacity         = 3,
                StudentSchedules = new List <StudentSchedule>
                {
                    new StudentSchedule {
                        Enrolled = true
                    },
                    new StudentSchedule {
                        Enrolled = false
                    },
                    new StudentSchedule {
                        Enrolled = true
                    }
                }
            };

            mockDB.AddDataEntry(schedule);

            int expected = 2;
            int actual   = data.GetNumberOfStudentsInCourse(schedule);

            Assert.Equal(expected, actual);
        }
        public void Test_ModifyCourse()
        {
            MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules);
            RegistrationData data = new RegistrationData(mockDB.Context);

            CourseSchedule existingCourseSchedule = new CourseSchedule
            {
                Schedule = new Schedule {
                    StartTime = new TimeSpan(8, 0, 0), TimeBlocks = 2
                },
                Capacity = 15
            };

            mockDB.AddDataEntry(existingCourseSchedule);

            Schedule schedule = new Schedule {
                StartTime = new TimeSpan(11, 0, 0), TimeBlocks = 1
            };
            short capacity = 30;

            data.ModifyCourse(existingCourseSchedule, schedule, capacity);

            Assert.Equal(schedule.StartTime, existingCourseSchedule.Schedule.StartTime);
            Assert.Equal(schedule.TimeBlocks, existingCourseSchedule.Schedule.TimeBlocks);
            Assert.Equal(capacity, existingCourseSchedule.Capacity);
            mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
        public void Test_CancelCourse()
        {
            MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules);
            RegistrationData data = new RegistrationData(mockDB.Context);

            CourseSchedule existingCourseSchedule = new CourseSchedule();

            mockDB.AddDataEntry(existingCourseSchedule);

            data.CancelCourse(existingCourseSchedule);

            mockDB.MockSet.Verify(m => m.Remove(It.IsAny <CourseSchedule>()), Times.Once());
            mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
        public void Test_RemoveStudent()
        {
            MockDatabase <Student> mockDB = new MockDatabase <Student>(c => c.Students);
            RegistrationData       data   = new RegistrationData(mockDB.Context);

            Student student = new Student();

            mockDB.AddDataEntry(student);

            data.RemoveStudent(student);

            mockDB.MockSet.Verify(m => m.Remove(It.IsAny <Student>()), Times.Once());
            mockDB.MockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
        public void Test_GetCourse()
        {
            MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules);
            RegistrationData data = new RegistrationData(mockDB.Context);

            CourseSchedule schedule = new CourseSchedule
            {
                CourseScheduleId = 3
            };

            mockDB.AddDataEntry(schedule);

            CourseSchedule foundSchedule = data.GetCourse(3);

            mockDB.MockSet.Verify(m => m.Find(It.IsAny <int>()), Times.Once());
        }
        public void Test_ListEnrolledStudents()
        {
            MockDatabase <CourseSchedule> mockDB = new MockDatabase <CourseSchedule>(c => c.CourseSchedules);
            RegistrationData data = new RegistrationData(mockDB.Context);

            CourseSchedule schedule = new CourseSchedule
            {
                Capacity         = 3,
                StudentSchedules = new List <StudentSchedule>
                {
                    new StudentSchedule {
                        Enrolled = true, Student = new Student {
                            Person = new Person {
                                Name = "Jim"
                            }
                        }
                    },
                    new StudentSchedule {
                        Enrolled = false, Student = new Student {
                            Person = new Person {
                                Name = "Bob"
                            }
                        }
                    },
                    new StudentSchedule {
                        Enrolled = true, Student = new Student {
                            Person = new Person {
                                Name = "Sherley"
                            }
                        }
                    }
                }
            };

            mockDB.AddDataEntry(schedule);

            List <Student> students = data.ListEnrolledStudents(schedule);

            Assert.Equal(2, students.Count);
            Assert.Equal("Jim", students[0].Person.Name);
            Assert.Equal("Sherley", students[1].Person.Name);
        }
        public void Test_ListStudentCourses()
        {
            MockDatabase <Student> mockDB = new MockDatabase <Student>(c => c.Students);
            RegistrationData       data   = new RegistrationData(mockDB.Context);

            Student student = new Student
            {
                StudentSchedules = new List <StudentSchedule>
                {
                    new StudentSchedule {
                        Enrolled = true, CourseSchedule = new CourseSchedule {
                            Course = new Course {
                                Title = "Intro to Computer Science"
                            }
                        }
                    },
                    new StudentSchedule {
                        Enrolled = false, CourseSchedule = new CourseSchedule {
                            Course = new Course {
                                Title = "English I"
                            }
                        }
                    },
                    new StudentSchedule {
                        Enrolled = true, CourseSchedule = new CourseSchedule {
                            Course = new Course {
                                Title = "Calculus IV"
                            }
                        }
                    },
                }
            };

            mockDB.AddDataEntry(student);

            List <StudentSchedule> courses = data.ListStudentSchedule(student);

            Assert.Equal(2, courses.Count);
            Assert.Equal("Intro to Computer Science", courses[0].CourseSchedule.Course.Title);
            Assert.Equal("Calculus IV", courses[1].CourseSchedule.Course.Title);
        }