public void ReturnNewCollectionWithExamResults_WhenExamsCollectionContainsExams()
        {
            // Arrange
            string validFirstName = "Pesho";
            string validLastName  = "Goshov";

            var examResultFake = new FakeExamResult(4, 0, 6, "Comment");
            var examStub       = new Mock <Exam>();

            examStub.Setup(e => e.Check()).Returns(examResultFake);

            var exams = new List <Exam> {
                examStub.Object
            };
            var student = new Student(validFirstName, validLastName, exams);

            // Act
            var result = student.CheckExams();

            // Assert
            CollectionAssert.AllItemsAreInstancesOfType(result, typeof(ExamResult));
        }
        public void ReturnTheAverageOfAllGradesInExams_WhenExamsCollectionContainsExams()
        {
            // Arrange
            string validFirstName = "Pesho";
            string validLastName  = "Goshov";

            var examResultFake = new FakeExamResult(4, 2, 6, "Comment");
            var examStub       = new Mock <Exam>();

            examStub.Setup(e => e.Check()).Returns(examResultFake);

            var exams = new List <Exam> {
                examStub.Object
            };
            var student = new Student(validFirstName, validLastName, exams);

            double expected = (double)(4 - 2) / (6 - 2);

            // Act
            var result = student.CalcAverageExamResultInPercents();

            // Assert
            Assert.AreEqual(expected, result);
        }