public void BindStudentClasses_ToModel_WhenArgumentsAreValid()
        {
            var mockedManagingMarksView                = new Mock <IManagingMarksView>();
            var mockedSubjectManagementService         = new Mock <ISubjectManagementService>();
            var mockedClassOfStudentsManagementService = new Mock <IClassOfStudentsManagementService>();
            var mockedMarkManagementService            = new Mock <IMarksManagementService>();
            var mockedStudentManagementService         = new Mock <IStudentManagementService>();

            var subjectId = It.IsAny <int>();

            mockedManagingMarksView
            .SetupGet(x => x.Model)
            .Returns(new ManagingMarksModel());

            var expectedClasses = new List <ClassOfStudents>()
            {
                new ClassOfStudents(),
                new ClassOfStudents(),
                new ClassOfStudents()
            };

            mockedClassOfStudentsManagementService
            .Setup(x => x.GetAllClassesWithSpecifiedSubject(subjectId))
            .Returns(expectedClasses);

            var managingMarksPrseenter = new ManagingMarksPresenter(
                mockedManagingMarksView.Object,
                mockedSubjectManagementService.Object,
                mockedClassOfStudentsManagementService.Object,
                mockedStudentManagementService.Object,
                mockedMarkManagementService.Object);

            var args = new BindClassesEventArgs()
            {
                SubjectId = subjectId
            };

            mockedManagingMarksView.Raise(x => x.EventBindClasses += null, args);

            CollectionAssert.AreEquivalent(expectedClasses, mockedManagingMarksView.Object.Model.StudentClasses);
        }
 private void View_EventBindClasses(object sender, BindClassesEventArgs e)
 {
     this.View.Model.StudentClasses = this.classOfStudentsManagementService.GetAllClassesWithSpecifiedSubject(e.SubjectId);
 }