public void Then_Maps_Fields_Appropriately( GetEpaoResponse source) { var response = (Api.Models.EpaoDetails)source; response.Should().BeEquivalentTo(source); }
public void And_Epao_Course_Not_Valid_Then_Throws_NotFoundException( GetCourseEpaoQuery query, GetEpaoResponse epaoApiResponse, List <GetCourseEpaoListItem> courseEpaosApiResponse, List <GetDeliveryAreaListItem> areasFromCache, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, [Frozen] Mock <ICachedDeliveryAreasService> mockCacheService, [Frozen] Mock <ICourseEpaoIsValidFilterService> mockCourseEpaoFilter, GetCourseEpaoQueryHandler handler) { courseEpaosApiResponse[0].EpaoId = query.EpaoId.ToLower(); mockAssessorsApiClient .Setup(client => client.Get <GetEpaoResponse>( It.Is <GetEpaoRequest>(request => request.EpaoId == query.EpaoId))) .ReturnsAsync(epaoApiResponse); mockAssessorsApiClient .Setup(client => client.GetAll <GetCourseEpaoListItem>( It.Is <GetCourseEpaosRequest>(request => request.CourseId == query.CourseId))) .ReturnsAsync(courseEpaosApiResponse); mockCacheService .Setup(service => service.GetDeliveryAreas()) .ReturnsAsync(areasFromCache); mockCourseEpaoFilter .Setup(service => service.IsValidCourseEpao(It.IsAny <GetCourseEpaoListItem>())) .Returns(false); Func <Task> act = async() => await handler.Handle(query, CancellationToken.None); act.Should().Throw <NotFoundException <GetCourseEpaoResult> >(); }
public async Task Then_Gets_Epao_From_Assessors_Api_And_Course_From_Courses_Api_And_DeliveryAreas_From_Cache_And_Other_Courses_From_Cache_Filtered( GetCourseEpaoQuery query, GetEpaoResponse epaoApiResponse, List <GetCourseEpaoListItem> courseEpaosApiResponse, List <GetEpaoCourseListItem> epaoCoursesApiResponse, List <GetDeliveryAreaListItem> areasFromCache, GetStandardsListResponse coursesFromCache, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, [Frozen] Mock <ICachedDeliveryAreasService> mockCachedAreasService, [Frozen] Mock <ICachedCoursesService> mockCachedCoursesService, [Frozen] Mock <ICourseEpaoIsValidFilterService> mockCourseEpaoFilter, GetCourseEpaoQueryHandler handler) { courseEpaosApiResponse[0].EpaoId = query.EpaoId.ToLower(); coursesFromCache.Standards.First().LarsCode = epaoCoursesApiResponse.First().StandardCode; coursesFromCache.Standards.ElementAt(1).LarsCode = query.CourseId; mockAssessorsApiClient .Setup(client => client.Get <GetEpaoResponse>( It.Is <GetEpaoRequest>(request => request.EpaoId == query.EpaoId))) .ReturnsAsync(epaoApiResponse); mockAssessorsApiClient .Setup(client => client.GetAll <GetCourseEpaoListItem>( It.Is <GetCourseEpaosRequest>(request => request.CourseId == query.CourseId))) .ReturnsAsync(courseEpaosApiResponse); mockAssessorsApiClient .Setup(client => client.GetAll <GetEpaoCourseListItem>( It.Is <GetEpaoCoursesRequest>(request => request.EpaoId == query.EpaoId))) .ReturnsAsync(epaoCoursesApiResponse); mockCachedAreasService .Setup(service => service.GetDeliveryAreas()) .ReturnsAsync(areasFromCache); mockCachedCoursesService .Setup(client => client.GetCourses()) .ReturnsAsync(coursesFromCache); mockCourseEpaoFilter .Setup(service => service.IsValidCourseEpao(It.IsAny <GetCourseEpaoListItem>())) .Returns <GetCourseEpaoListItem>(item => item.EpaoId == query.EpaoId.ToLower()); mockCourseEpaoFilter .Setup(service => service.ValidateEpaoStandardDates(It.IsAny <DateTime?>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>())) .Returns(true); var result = await handler.Handle(query, CancellationToken.None); result.Epao.Should().BeEquivalentTo(epaoApiResponse); result.EpaoDeliveryAreas.Should().BeEquivalentTo(courseEpaosApiResponse.Single(item => string.Equals(item.EpaoId, query.EpaoId, StringComparison.CurrentCultureIgnoreCase)).DeliveryAreas); result.CourseEpaosCount.Should().Be(courseEpaosApiResponse.Count(item => item.EpaoId == query.EpaoId.ToLower()));//filter returns true result.Course.Should().BeEquivalentTo(coursesFromCache.Standards.Single(item => item.LarsCode == query.CourseId)); result.DeliveryAreas.Should().BeEquivalentTo(areasFromCache); result.AllCourses.Should().BeEquivalentTo( coursesFromCache.Standards.Where(item => epaoCoursesApiResponse.Any(listItem => listItem.StandardCode == item.LarsCode))); foreach (var courseListItem in epaoCoursesApiResponse) { mockCourseEpaoFilter.Verify(x => x.ValidateEpaoStandardDates(courseListItem.DateStandardApprovedOnRegister, courseListItem.EffectiveTo, courseListItem.EffectiveFrom), Times.Once); } result.EffectiveFrom.Should().Be(courseEpaosApiResponse .Single(item => item.EpaoId == query.EpaoId.ToLower()) .CourseEpaoDetails.EffectiveFrom !.Value);//nulls removed in filter }
public void Then_Maps_Fields_Appropriately( GetEpaoResponse source) { var response = (GetEpaoApiModel)source; response.Should().BeEquivalentTo(source, options => options.ExcludingMissingMembers()); }
public async Task If_No_Valid_Standards_Found_Returns_Zero_AllCourses( GetCourseEpaoQuery query, GetEpaoResponse epaoApiResponse, List <GetCourseEpaoListItem> courseEpaosApiResponse, List <GetEpaoCourseListItem> epaoCoursesApiResponse, List <GetDeliveryAreaListItem> areasFromCache, GetStandardsListResponse coursesFromCache, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, [Frozen] Mock <ICachedDeliveryAreasService> mockCachedAreasService, [Frozen] Mock <ICachedCoursesService> mockCachedCoursesService, [Frozen] Mock <ICourseEpaoIsValidFilterService> mockCourseEpaoFilter, GetCourseEpaoQueryHandler handler) { courseEpaosApiResponse[0].EpaoId = query.EpaoId.ToLower(); coursesFromCache.Standards.First().LarsCode = epaoCoursesApiResponse.First().StandardCode; coursesFromCache.Standards.ElementAt(1).LarsCode = query.CourseId; mockAssessorsApiClient .Setup(client => client.Get <GetEpaoResponse>( It.Is <GetEpaoRequest>(request => request.EpaoId == query.EpaoId))) .ReturnsAsync(epaoApiResponse); mockAssessorsApiClient .Setup(client => client.GetAll <GetCourseEpaoListItem>( It.Is <GetCourseEpaosRequest>(request => request.CourseId == query.CourseId))) .ReturnsAsync(courseEpaosApiResponse); mockAssessorsApiClient .Setup(client => client.GetAll <GetEpaoCourseListItem>( It.Is <GetEpaoCoursesRequest>(request => request.EpaoId == query.EpaoId))) .ReturnsAsync(epaoCoursesApiResponse); mockCachedAreasService .Setup(service => service.GetDeliveryAreas()) .ReturnsAsync(areasFromCache); mockCachedCoursesService .Setup(client => client.GetCourses()) .ReturnsAsync(coursesFromCache); mockCourseEpaoFilter .Setup(service => service.IsValidCourseEpao(It.IsAny <GetCourseEpaoListItem>())) .Returns <GetCourseEpaoListItem>(item => item.EpaoId == query.EpaoId.ToLower()); 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(false); var result = await handler.Handle(query, CancellationToken.None); result.Epao.Should().BeEquivalentTo(epaoApiResponse); result.StandardVersions.Should().BeEmpty(); result.AllCourses.Should().BeEmpty(); }
public async Task Then_Gets_Epao_From_Assessor_Api( GetEpaoQuery query, GetEpaoResponse apiResponse, [Frozen] Mock <IAssessorsApiClient <AssessorsApiConfiguration> > mockAssessorsApiClient, GetEpaoQueryHandler handler) { mockAssessorsApiClient .Setup(client => client.Get <GetEpaoResponse>( It.Is <GetEpaoRequest>(request => request.EpaoId == query.EpaoId))) .ReturnsAsync(apiResponse); var result = await handler.Handle(query, CancellationToken.None); result.Epao.Should().BeEquivalentTo(apiResponse); }