public ParentCourseGradeController(IParentCourseRepository parentCourseRepository, IGenericRepository genericRepository, ISessionRepository sesssionRepository, ParentCourseGradesModelToStudentsMapper parentCourseGradesModelToStudentsMapper, StudentsSesssionParentCourseToParentCourseGradesModelMapper studentsSesssionParentCourseToParentCourseGradesModelMapper, ParentCourseGradeToCsvMapper parentCourseToCsvMapper) { _parentCourseRepository = parentCourseRepository; _genericRepository = genericRepository; _sesssionRepository = sesssionRepository; _parentCourseGradesModelToStudentsMapper = parentCourseGradesModelToStudentsMapper; _studentsSesssionParentCourseToParentCourseGradesModelMapper = studentsSesssionParentCourseToParentCourseGradesModelMapper; _parentCourseToCsvMapper = parentCourseToCsvMapper; }
public void ShouldMap() { var parentCourseGrade1 = new ParentCourseGradeBuilder().WithParentCourse(new ParentCourseBuilder().WithCourseCode("MATH12321").Build()) .WithStudent(new StudentBuilder().WithStudentUsi(2000).WithLastSurname("Jones").Build()) .Build(); var parentCourseGrade2 = new ParentCourseGradeBuilder().WithParentCourse(new ParentCourseBuilder().WithCourseCode("ENGL432").Build()) .WithStudent(new StudentBuilder().WithStudentUsi(2001).WithLastSurname("White").Build()) .Build(); var parentCourseGrades = new List<ParentCourseGrade> { parentCourseGrade1, parentCourseGrade2 }; var mapper = new ParentCourseGradeToCsvMapper(); var gradesByteArray = mapper.Build(parentCourseGrades); var csvString = System.Text.Encoding.Default.GetString(gradesByteArray); var csvLines = csvString.Split(new [] { Environment.NewLine }, StringSplitOptions.None); csvLines.Count().ShouldBe(4); csvLines[0].ShouldBe("StudentLastName,StudentUSI,CourseCode,CourseTitle,Grade"); csvLines[1].ShouldBe(parentCourseGrade1.Student.LastSurname + "," + parentCourseGrade1.StudentUSI + "," + parentCourseGrade1.ParentCourse.ParentCourseCode + "," + parentCourseGrade1.ParentCourse.ParentCourseTitle + "," + parentCourseGrade1.GradeEarned); csvLines[2].ShouldBe(parentCourseGrade2.Student.LastSurname + "," + parentCourseGrade2.StudentUSI + "," + parentCourseGrade2.ParentCourse.ParentCourseCode + "," + parentCourseGrade2.ParentCourse.ParentCourseTitle + "," + parentCourseGrade2.GradeEarned); }