public async Task Then_Gets_CourseEpaos_From_Service( GetCourseEpaosQuery query, CourseEpaos courseEpaos, DeliveryAreaList deliveryAreas, [Frozen] Mock <IValidator <GetCourseEpaosQuery> > mockValidator, [Frozen] Mock <ICourseService> mockCourseService, [Frozen] Mock <IEpaoService> mockEpaoService, GetCourseEpaosQueryHandler handler) { mockValidator .Setup(validator => validator.ValidateAsync(query)) .ReturnsAsync(new ValidationResult()); mockCourseService .Setup(service => service.GetCourseEpaos(query.CourseId)) .ReturnsAsync(courseEpaos); mockEpaoService .Setup(service => service.GetDeliveryAreas()) .ReturnsAsync(deliveryAreas); var result = await handler.Handle(query, CancellationToken.None); result.Course.Should().BeEquivalentTo(courseEpaos.Course); result.Epaos.Should().BeEquivalentTo(courseEpaos.Epaos); result.DeliveryAreas.Should().BeEquivalentTo(deliveryAreas.DeliveryAreas); }
public async Task Then_Gets_Epaos_From_Assessors_Api_And_Course_From_Courses_Api_And_Filters_Epaos( GetCourseEpaosQuery query, List <GetCourseEpaoListItem> epaoApiResponse, GetStandardsListItem coursesApiResponse, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseEpaoIsValidFilterService> mockCourseEpaoFilter, GetCourseEpaosQueryHandler handler) { mockAssessorsApiClient .Setup(client => client.GetAll <GetCourseEpaoListItem>( It.Is <GetCourseEpaosRequest>(request => request.CourseId == query.CourseId))) .ReturnsAsync(epaoApiResponse); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListItem>( It.Is <GetStandardRequest>(request => request.StandardId == query.CourseId))) .ReturnsAsync(coursesApiResponse); mockCourseEpaoFilter .Setup(service => service.IsValidCourseEpao(It.Is <GetCourseEpaoListItem>(item => item.EpaoId == epaoApiResponse[0].EpaoId))) .Returns(true); var result = await handler.Handle(query, CancellationToken.None); result.Epaos.Should().BeEquivalentTo(epaoApiResponse.Where(item => item.EpaoId == epaoApiResponse[0].EpaoId).ToList()); result.Epaos.Should().BeInAscendingOrder(item => item.Name); result.Course.Should().BeEquivalentTo(coursesApiResponse); }
public async Task Then_Gets_Epaos_From_Assessors_Api_And_Course_From_Courses_Api_And_Filters_Epaos( GetCourseEpaosQuery query, List <GetCourseEpaoListItem> epaoApiResponse, GetStandardsListItem coursesApiResponse, IEnumerable <GetStandardsExtendedListItem> standardsResponse, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseEpaoIsValidFilterService> mockCourseEpaoFilter, GetCourseEpaosQueryHandler handler) { mockAssessorsApiClient .Setup(client => client.GetAll <GetCourseEpaoListItem>( It.Is <GetCourseEpaosRequest>(request => request.CourseId == query.CourseId))) .ReturnsAsync(epaoApiResponse); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListItem>( It.Is <GetStandardRequest>(request => request.StandardId == query.CourseId))) .ReturnsAsync(coursesApiResponse); foreach (var epao in epaoApiResponse) { mockAssessorsApiClient .Setup(client => client.Get <IEnumerable <GetStandardsExtendedListItem> >( It.Is <GetCourseEpaosStandardVersionsRequest>(request => request.LarsCode == query.CourseId && request.organisationId == epao.EpaoId))) .ReturnsAsync(standardsResponse); } mockCourseEpaoFilter .Setup(service => service.IsValidCourseEpao(It.Is <GetCourseEpaoListItem>(item => item.EpaoId == epaoApiResponse[0].EpaoId))) .Returns(true); mockCourseEpaoFilter .Setup(service => service.ValidateEpaoStandardDates(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(true); mockCourseEpaoFilter .Setup(service => service.ValidateVersionDates(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(true); var result = await handler.Handle(query, CancellationToken.None); result.Epaos.Select(x => x.CourseEpaoDetails.StandardVersions) .FirstOrDefault().Should().BeEquivalentTo(standardsResponse.Select(x => x.Version)); result.Epaos.Should().BeEquivalentTo(epaoApiResponse.Where(item => item.EpaoId == epaoApiResponse[0].EpaoId).ToList()); result.Epaos.Should().BeInAscendingOrder(item => item.Name); result.Course.Should().BeEquivalentTo(coursesApiResponse); }
public async Task And_Query_InValid_Then_Throws_ValidationException( GetCourseEpaosQuery query, string propertyName, ValidationResult validationResult, [Frozen] Mock <IValidator <GetCourseEpaosQuery> > mockValidator, GetCourseEpaosQueryHandler handler) { validationResult.AddError(propertyName); mockValidator .Setup(validator => validator.ValidateAsync(query)) .ReturnsAsync(validationResult); var act = new Func <Task>(async() => await handler.Handle(query, CancellationToken.None)); act.Should().Throw <ValidationException>() .WithMessage($"*{propertyName}*"); }
public async Task If_No_Valid_Standards_Found_Returns_Zero_Epaos( GetCourseEpaosQuery query, List <GetCourseEpaoListItem> epaoApiResponse, GetStandardsListItem coursesApiResponse, IEnumerable <GetStandardsExtendedListItem> standardsResponse, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseEpaoIsValidFilterService> mockCourseEpaoFilter, GetCourseEpaosQueryHandler handler) { mockAssessorsApiClient .Setup(client => client.GetAll <GetCourseEpaoListItem>( It.Is <GetCourseEpaosRequest>(request => request.CourseId == query.CourseId))) .ReturnsAsync(epaoApiResponse); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListItem>( It.Is <GetStandardRequest>(request => request.StandardId == query.CourseId))) .ReturnsAsync(coursesApiResponse); foreach (var epao in epaoApiResponse) { mockAssessorsApiClient .Setup(client => client.Get <IEnumerable <GetStandardsExtendedListItem> >( It.Is <GetCourseEpaosStandardVersionsRequest>(request => request.LarsCode == query.CourseId && request.organisationId == epao.EpaoId))) .ReturnsAsync(standardsResponse); } mockCourseEpaoFilter .Setup(service => service.IsValidCourseEpao(It.IsAny <GetCourseEpaoListItem>())) .Returns(true); mockCourseEpaoFilter .Setup(service => service.ValidateVersionDates(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(false); var result = await handler.Handle(query, CancellationToken.None); result.Epaos.Should().BeEmpty(); }