public void TestGetTotalCreditsPerYearWrongSemesters()
        {
            // Arrange: create data
            var semester     = 2;
            var academicYear = 2;

            var subjects     = GetSubjectsForThisSemester(2);
            var student      = GetStudentWithSubjects(subjects);
            var collegeRules = new CollegeRules(academicYear, semester);

            // Arrange: prepare input
            var subjectPreviousYear = subjects.ElementAt(0);

            subjectPreviousYear.Semester  = semester - 1;
            subjectPreviousYear.StudyYear = academicYear - 1;

            var subjectNextYear = subjects.ElementAt(1);

            subjectNextYear.Semester  = semester + 1;
            subjectNextYear.StudyYear = academicYear + 1;

            // Act
            var totalCredits = collegeRules.GetTotalCreditsPerYear(student, academicYear, semester);

            // Assert
            Assert.AreEqual(0, totalCredits, "The number of credits is not equal to the expected one");
        }
        public void TestGetTotalCreditsPerYear()
        {
            // Arrange: create data
            var numberOfSubjects = 4;

            var subjects     = GetSubjectsForThisSemester(numberOfSubjects);
            var student      = GetStudentWithSubjects(subjects);
            var collegeRules = new CollegeRules(academicYear, semester);

            // Arrange: prepare input
            var subjectPreviousYear = subjects.ElementAt(0);

            subjectPreviousYear.Semester  = semester - 1;
            subjectPreviousYear.StudyYear = academicYear - 1;

            var subjectNextYear = subjects.ElementAt(3);

            subjectNextYear.Semester  = semester + 1;
            subjectNextYear.StudyYear = academicYear + 1;

            var subjectsThisSemester = student.SubjectsList.Skip(1).Take(2);

            var expectedTotalCredits = 0;

            foreach (var subjectThisSemester in subjectsThisSemester)
            {
                expectedTotalCredits += subjectThisSemester.Grade * subjectThisSemester.Subject.Credits;
            }

            // Act
            var totalCredits = collegeRules.GetTotalCreditsPerYear(student, academicYear, semester);

            // Assert
            Assert.AreEqual(expectedTotalCredits, totalCredits, "The number of credits is not equal to the expected one");
        }