Example #1
0
        public void TestStudentIsGraduated()
        {
            IStudent student = Repository.GetStudent(2);
            IDiploma diploma = Repository.GetDiploma(1);
            StudentGraduationTracker tracker = new StudentGraduationTracker(student, diploma);

            ResultGraduationTracker result = tracker.StudentHasGraduated();

            Assert.IsTrue(result.IsGraduated);
            Assert.IsTrue(result.Standing == Standing.MagnaCumLaude);
            // not too sure about this bussiness rule
            Assert.IsTrue(result.Credits > 1);
        }
Example #2
0
        public void TestStudentIsNotGraduated()
        {
            IStudent student = Repository.GetStudent(4);
            IDiploma diploma = Repository.GetDiploma(1);
            StudentGraduationTracker tracker = new StudentGraduationTracker(student, diploma);

            ResultGraduationTracker result = tracker.StudentHasGraduated();



            Assert.IsFalse(result.IsGraduated);
            Assert.IsTrue(result.Standing == Standing.Remedial);
        }
Example #3
0
        public void TestHasCredits()
        {
            var tracker = new StudentGraduationTracker();

            Diploma        diploma  = GetDiploma();
            List <Student> students = GetStudents();

            var graduated = new List <Tuple <bool, STANDING> >();

            foreach (var student in students)
            {
                graduated.Add(tracker.HasGraduated(diploma, student));
            }

            Assert.IsFalse(graduated.Where(r => r.Item2 == STANDING.Remedial).Any());
            Assert.IsTrue(graduated.Where(r => r.Item2 != STANDING.Remedial).Any());
            Assert.IsTrue(graduated.Where(r => r.Item2 != STANDING.NotEnoughRequirements).Any());
            // Testing fails here because there is 1 student who has
            // at least a score less than 50. The previous logic was wrong.
            // it was checking scores more than 50 not more than and equal.
            Assert.IsFalse(graduated.Where(r => r.Item2 == STANDING.None).Any());
        }