public async Task Then_Returns_Totals_For_Standard( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, GetApprenticeFeedbackResponse appfeedbackResponse, List <int> ukprnsByStandard, List <int> ukprnsByStandardAndLocation, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackApiClient, GetTrainingCourseProviderQueryHandler handler) { ukprnsByStandard.Add(query.ProviderId); ukprnsByStandardAndLocation.Add(query.ProviderId); var ukprnsCountResponse = new GetUkprnsForStandardAndLocationResponse { UkprnsByStandard = ukprnsByStandard, UkprnsByStandardAndLocation = ukprnsByStandardAndLocation }; ArrangeClients(query, apiResponse, apiCourseResponse, apiAchievementRateResponse, allCoursesApiResponse, ukprnsCountResponse, appfeedbackResponse, mockCoursesApiClient, mockApiClient, mockApprenticeFeedbackApiClient); var result = await handler.Handle(query, CancellationToken.None); result.TotalProviders.Should().Be(ukprnsCountResponse.UkprnsByStandard.ToList().Count); result.TotalProvidersAtLocation.Should().Be(ukprnsCountResponse.UkprnsByStandardAndLocation.ToList().Count); }
public async Task Then_Additional_Courses_for_Provider_Should_Not_Contain_Course_Passed_To_Handler( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, List <GetStandardsListItem> allStandards, GetUkprnsForStandardAndLocationResponse ukprnsCountResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, GetTrainingCourseProviderQueryHandler handler) { apiCourseResponse.LarsCode = query.CourseId; allStandards.Add(new GetStandardsListItem { LarsCode = apiCourseResponse.LarsCode, Title = apiCourseResponse.Title, Level = apiCourseResponse.Level }); allCoursesApiResponse.Standards = allStandards; ArrangeClients(query, apiResponse, apiCourseResponse, apiAchievementRateResponse, allCoursesApiResponse, ukprnsCountResponse, mockCoursesApiClient, mockApiClient); var result = await handler.Handle(query, CancellationToken.None); result.AdditionalCourses.Count().Should().Be(allCoursesApiResponse.Standards.Count() - 1); }
public async Task Then_Gets_The_Standard_And_The_Provider_For_That_Course_And_Shortlist_Count_From_Course_Delivery_Api_Client( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, GetUkprnsForStandardAndLocationResponse ukprnsCountResponse, int shortlistItemCount, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, [Frozen] Mock <IShortlistService> shortlistService, GetTrainingCourseProviderQueryHandler handler) { shortlistService.Setup(x => x.GetShortlistItemCount(query.ShortlistUserId)) .ReturnsAsync(shortlistItemCount); ArrangeClients(query, apiResponse, apiCourseResponse, apiAchievementRateResponse, allCoursesApiResponse, ukprnsCountResponse, mockCoursesApiClient, mockApiClient); var result = await handler.Handle(query, CancellationToken.None); result.ProviderStandard.Should().BeEquivalentTo(apiResponse); result.Course.Should().BeEquivalentTo(apiCourseResponse); result.ShortlistItemCount.Should().Be(shortlistItemCount); mockApiClient.Verify(x => x.Get <GetProviderStandardItem>(It.IsAny <GetProviderByCourseAndUkPrnRequest>()), Times.Once); }
public async Task Then_Returns_Additional_Courses_for_Provider_That_Are_Available( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, GetUkprnsForStandardAndLocationResponse ukprnsCountResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, GetTrainingCourseProviderQueryHandler handler) { mockApiClient .Setup(client => client.Get <GetProviderStandardItem>(It.Is <GetProviderByCourseAndUkPrnRequest>(c => c.GetUrl.Contains(query.CourseId.ToString()) && c.GetUrl.Contains(query.ProviderId.ToString() )))) .ReturnsAsync(apiResponse); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListResponse>(It.IsAny <GetAvailableToStartStandardsListRequest>())) .ReturnsAsync(allCoursesApiResponse); var additionalCourses = allCoursesApiResponse.Standards.Select(c => c.LarsCode).ToList(); additionalCourses.Add(-10); mockApiClient .Setup(client => client.Get <GetProviderAdditionalStandardsItem>(It.Is <GetProviderAdditionalStandardsRequest>( c => c.GetUrl.Contains(query.ProviderId.ToString() )))) .ReturnsAsync(new GetProviderAdditionalStandardsItem { StandardIds = additionalCourses }); mockApiClient .Setup(x => x.Get <GetUkprnsForStandardAndLocationResponse>( It.Is <GetUkprnsForStandardAndLocationRequest>(c => c.GetUrl.Contains(query.CourseId.ToString())))) .ReturnsAsync(ukprnsCountResponse); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListItem>( It.Is <GetStandardRequest>(c => c.GetUrl.Contains(query.CourseId.ToString())))) .ReturnsAsync(apiCourseResponse); mockApiClient.Setup(client => client.Get <GetOverallAchievementRateResponse>(It.Is <GetOverallAchievementRateRequest>( c => c.GetUrl.Contains(apiCourseResponse.SectorSubjectAreaTier2Description) ))) .ReturnsAsync(apiAchievementRateResponse); var result = await handler.Handle(query, CancellationToken.None); result.AdditionalCourses.Should().BeInAscendingOrder(c => c.Title); result.AdditionalCourses.Should() .BeEquivalentTo(allCoursesApiResponse.Standards, options => options.ExcludingMissingMembers()); }
public async Task Then_Does_Not_Return_Additional_Courses_If_No_Additional_Courses( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetUkprnsForStandardAndLocationResponse ukprnsCountResponse, GetApprenticeFeedbackResponse apprenticeFeedbackResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackApiClient, GetTrainingCourseProviderQueryHandler handler) { mockApiClient .Setup(client => client.Get <GetProviderStandardItem>(It.Is <GetProviderByCourseAndUkPrnRequest>(c => c.GetUrl.Contains(query.CourseId.ToString()) && c.GetUrl.Contains(query.ProviderId.ToString() )))) .ReturnsAsync(apiResponse); mockApiClient .Setup(client => client.Get <GetProviderAdditionalStandardsItem>(It.Is <GetProviderAdditionalStandardsRequest>(c => c.GetUrl.Contains(query.ProviderId.ToString() )))) .ReturnsAsync(new GetProviderAdditionalStandardsItem { StandardIds = new List <int>() }); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListItem>(It.Is <GetStandardRequest>(c => c.GetUrl.Contains(query.CourseId.ToString())))) .ReturnsAsync(apiCourseResponse); mockCoursesApiClient .Setup(client => client.Get <GetStandardsListResponse>(It.IsAny <GetAvailableToStartStandardsListRequest>())) .ReturnsAsync(allCoursesApiResponse); mockApiClient.Setup(client => client.Get <GetOverallAchievementRateResponse>(It.Is <GetOverallAchievementRateRequest>(c => c.GetUrl.Contains(apiCourseResponse.SectorSubjectAreaTier2Description) ))) .ReturnsAsync(apiAchievementRateResponse); mockApiClient .Setup(x => x.Get <GetUkprnsForStandardAndLocationResponse>( It.Is <GetUkprnsForStandardAndLocationRequest>(c => c.GetUrl.Contains(query.CourseId.ToString())))) .ReturnsAsync(ukprnsCountResponse); apprenticeFeedbackResponse.Ukprn = query.ProviderId; mockApprenticeFeedbackApiClient .Setup(s => s.PostWithResponseCode <IEnumerable <GetApprenticeFeedbackResponse> > (It.Is <PostApprenticeFeedbackRequest>(t => ((PostApprenticeFeedbackRequestData)t.Data).Ukprns.Contains(query.ProviderId)))) .ReturnsAsync(new ApiResponse <IEnumerable <GetApprenticeFeedbackResponse> >(new List <GetApprenticeFeedbackResponse> { apprenticeFeedbackResponse }, HttpStatusCode.OK, string.Empty)); var result = await handler.Handle(query, CancellationToken.None); result.AdditionalCourses.Should().BeEquivalentTo(new List <GetAdditionalCourseListItem>()); }
public async Task Then_Returns_Additional_Courses_for_Provider_In_Alphabetical_Order( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, GetUkprnsForStandardAndLocationResponse ukprnsCountResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, GetTrainingCourseProviderQueryHandler handler) { ArrangeClients(query, apiResponse, apiCourseResponse, apiAchievementRateResponse, allCoursesApiResponse, ukprnsCountResponse, mockCoursesApiClient, mockApiClient); var result = await handler.Handle(query, CancellationToken.None); result.AdditionalCourses.Should().BeInAscendingOrder(c => c.Title); result.AdditionalCourses.Should() .BeEquivalentTo(allCoursesApiResponse.Standards, options => options.ExcludingMissingMembers()); }
public async Task Then_Gets_The_Overall_Achievement_Rate_Data_From_The_Course_SubjectSectorArea( GetTrainingCourseProviderQuery query, GetProviderStandardItem apiResponse, GetStandardsListItem apiCourseResponse, GetOverallAchievementRateResponse apiAchievementRateResponse, GetProviderAdditionalStandardsItem apiAdditionalStandardsResponse, GetStandardsListResponse allCoursesApiResponse, GetUkprnsForStandardAndLocationResponse ukprnsCountResponse, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient, [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient, GetTrainingCourseProviderQueryHandler handler) { query.Lat = 0; query.Lon = 0; query.Location = string.Empty; ArrangeClients(query, apiResponse, apiCourseResponse, apiAchievementRateResponse, allCoursesApiResponse, ukprnsCountResponse, mockCoursesApiClient, mockApiClient); var result = await handler.Handle(query, CancellationToken.None); result.OverallAchievementRates.Should().BeEquivalentTo(apiAchievementRateResponse.OverallAchievementRates); }