Beispiel #1
0
        public async Task Then_The_Api_Is_Called_With_The_Request_And_Vacancies_Returned(
            GetVacanciesQuery query,
            GetVacanciesResponse apiResponse,
            List <string> categories,
            GetStandardsListItem courseResponse,
            [Frozen] Mock <ICourseService> courseService,
            [Frozen] Mock <IFindApprenticeshipApiClient <FindApprenticeshipApiConfiguration> > apiClient,
            GetVacanciesQueryHandler handler)
        {
            courseService.Setup(x => x.MapRoutesToCategories(query.Routes)).Returns(categories);
            query.AccountLegalEntityPublicHashedId = "";
            var expectedGetRequest = new GetVacanciesRequest(query.PageNumber, query.PageSize,
                                                             query.AccountLegalEntityPublicHashedId, query.Ukprn, query.AccountPublicHashedId, query.StandardLarsCode,
                                                             query.NationWideOnly, query.Lat, query.Lon, query.DistanceInMiles, categories, query.PostedInLastNumberOfDays, query.Sort);

            apiClient.Setup(x =>
                            x.Get <GetVacanciesResponse>(It.Is <GetVacanciesRequest>(c =>
                                                                                     c.GetUrl.Equals(expectedGetRequest.GetUrl)))).ReturnsAsync(apiResponse);
            courseService.Setup(x => x.GetActiveStandards <GetStandardsListResponse>(nameof(GetStandardsListResponse))).ReturnsAsync(new GetStandardsListResponse
            {
                Standards = new List <GetStandardsListItem> {
                    courseResponse
                }
            });

            var actual = await handler.Handle(query, CancellationToken.None);

            actual.Vacancies.Should().BeEquivalentTo(apiResponse.ApprenticeshipVacancies);
            actual.Total.Should().Be(apiResponse.Total);
            actual.TotalFiltered.Should().Be(apiResponse.TotalFound);
            actual.TotalPages.Should().Be((int)Math.Ceiling((decimal)apiResponse.TotalFound / query.PageSize));
        }
        public async Task Then_Creates_The_Shortlist_From_The_Request_Calling_CourseDelivery_Api(
            PostShortListResponse apiResponse,
            CreateShortlistForUserCommand command,
            GetStandardsListItem standardApiResponse,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > courseDeliveryApiClient,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > coursesApiClient,
            CreateShortlistForUserCommandHandler handler)
        {
            //Arrange
            coursesApiClient
            .Setup(x => x.Get <GetStandardsListItem>(It.Is <GetStandardRequest>(c =>
                                                                                c.StandardId.Equals(command.StandardId)))).ReturnsAsync(standardApiResponse);
            courseDeliveryApiClient.Setup(x =>
                                          x.Post <PostShortListResponse>(It.Is <PostShortlistForUserRequest>(c =>
                                                                                                             ((PostShortlistData)c.Data).Lat.Equals(command.Lat) &&
                                                                                                             ((PostShortlistData)c.Data).Lon.Equals(command.Lon) &&
                                                                                                             ((PostShortlistData)c.Data).Ukprn.Equals(command.Ukprn) &&
                                                                                                             ((PostShortlistData)c.Data).LocationDescription.Equals(command.LocationDescription) &&
                                                                                                             ((PostShortlistData)c.Data).StandardId.Equals(command.StandardId) &&
                                                                                                             ((PostShortlistData)c.Data).SectorSubjectArea.Equals(standardApiResponse.SectorSubjectAreaTier2Description) &&
                                                                                                             ((PostShortlistData)c.Data).ShortlistUserId.Equals(command.ShortlistUserId)))).ReturnsAsync(apiResponse);
            //Act
            var actual = await handler.Handle(command, CancellationToken.None);

            //Assert
            actual.Should().Be(apiResponse.Id);
        }
        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 And_Application_Exists_Stitches_Up_Standard_To_Result(
            GetApplicationQuery getApplicationQuery,
            GetApplicationResponse getApplicationResponse,
            GetStandardsListItem getStandardsListItem,
            GetCohortsResponse getCohortsResponse,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ILevyTransferMatchingService> mockLevyTransferMatchingService,
            [Frozen] Mock <ICommitmentsV2ApiClient <CommitmentsV2ApiConfiguration> > mockCommitmentsV2ApiClient,
            GetApplicationQueryHandler getApplicationQueryHandler)
        {
            mockLevyTransferMatchingService
            .Setup(x => x.GetApplication(It.Is <GetApplicationRequest>(y => y.GetUrl.Contains(getApplicationQuery.ApplicationId.ToString()))))
            .ReturnsAsync(getApplicationResponse);

            mockCoursesApiClient
            .Setup(x => x.Get <GetStandardsListItem>(It.Is <GetStandardDetailsByIdRequest>(y => y.GetUrl.Contains(getApplicationResponse.StandardId))))
            .ReturnsAsync(getStandardsListItem);

            mockCommitmentsV2ApiClient
            .Setup(x => x.Get <GetCohortsResponse>(It.Is <GetCohortsRequest>(y => y.GetUrl.Contains(getApplicationQuery.AccountId.ToString()))))
            .ReturnsAsync(getCohortsResponse);

            var result = await getApplicationQueryHandler.Handle(getApplicationQuery, CancellationToken.None);

            Assert.IsNotNull(result);
            Assert.AreEqual(getApplicationResponse.Status, result.Status);
        }
Beispiel #5
0
        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_Additional_Courses_for_Provider_Should_Contain_Course_Passed_To_Handler(
            GetTrainingCourseProviderQuery query,
            GetProviderStandardItem apiResponse,
            GetStandardsListItem apiCourseResponse,
            GetOverallAchievementRateResponse apiAchievementRateResponse,
            GetStandardsListResponse allCoursesApiResponse,
            List <GetStandardsListItem> allStandards,
            GetUkprnsForStandardAndLocationResponse ukprnsCountResponse,
            GetApprenticeFeedbackResponse appfeedbackResponse,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient,
            [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackApiClient,
            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, appfeedbackResponse, mockCoursesApiClient, mockApiClient, mockApprenticeFeedbackApiClient);

            var result = await handler.Handle(query, CancellationToken.None);

            result.AdditionalCourses.Should().BeEquivalentTo(allCoursesApiResponse.Standards.Select(c => new { Id = c.LarsCode, c.Title, c.Level }).ToList());
        }
        public void Then_Maps_Fields_Appropriately(
            GetStandardsListItem source)
        {
            var response = (GetTrainingCoursesListItem)source;

            response.Should().BeEquivalentTo(source);
        }
Beispiel #8
0
        public async Task Then_The_Demand_Data_Is_Returned_From_The_Api(
            GetRestartEmployerDemandQuery query,
            GetEmployerDemandResponse getDemandResponse,
            GetStandardsListItem getStandardResponse,
            [Frozen] Mock <IEmployerDemandApiClient <EmployerDemandApiConfiguration> > demandApiClient,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > coursesApiClient,
            GetRestartEmployerDemandQueryHandler handler)
        {
            //Arrange
            demandApiClient.Setup(x =>
                                  x.Get <GetEmployerDemandResponse>(
                                      It.Is <GetEmployerDemandByExpiredDemandRequest>(c => c.GetUrl.Contains($"demand?expiredCourseDemandId={query.Id}"))))
            .ReturnsAsync((GetEmployerDemandResponse)null);
            demandApiClient.Setup(x =>
                                  x.Get <GetEmployerDemandResponse>(
                                      It.Is <GetEmployerDemandRequest>(c => c.GetUrl.Contains($"demand/{query.Id}"))))
            .ReturnsAsync(getDemandResponse);
            coursesApiClient.Setup(x =>
                                   x.Get <GetStandardsListItem>(
                                       It.Is <GetStandardRequest>(c => c.GetUrl.Contains($"api/courses/standards/{getDemandResponse.Course.Id}"))))
            .ReturnsAsync(getStandardResponse);

            //Act
            var actual = await handler.Handle(query, CancellationToken.None);

            //Assert
            actual.EmployerDemand.Should().BeEquivalentTo(getDemandResponse);
            actual.RestartDemandExists.Should().BeFalse();
            actual.LastStartDate.Should().Be(getStandardResponse.StandardDates.LastDateStarts);
        }
        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);
        }
Beispiel #10
0
        public async Task Then_The_Api_Is_Called_With_The_Request_And_Vacancy_And_Course_Not_looked_Up_If_Standard_Is_Null(
            GetVacancyQuery query,
            GetVacancyApiResponse apiApiResponse,
            GetStandardsListItem courseResponse,
            string findAnApprenticeshipBaseUrl,
            List <string> categories,
            [Frozen] Mock <ICourseService> standardsService,
            [Frozen] Mock <IFindApprenticeshipApiClient <FindApprenticeshipApiConfiguration> > apiClient,
            [Frozen] Mock <IOptions <VacanciesConfiguration> > vacanciesConfiguration,
            GetVacancyQueryHandler handler)
        {
            vacanciesConfiguration.Object.Value.FindAnApprenticeshipBaseUrl = findAnApprenticeshipBaseUrl;
            apiApiResponse.StandardLarsCode = null;
            standardsService.Setup(x => x.GetActiveStandards <GetStandardsListResponse>(nameof(GetStandardsListResponse))).ReturnsAsync(new GetStandardsListResponse
            {
                Standards = new List <GetStandardsListItem> {
                    courseResponse
                }
            });

            var expectedGetRequest = new GetVacancyRequest(query.VacancyReference);

            apiClient.Setup(x =>
                            x.Get <GetVacancyApiResponse>(It.Is <GetVacancyRequest>(c =>
                                                                                    c.GetUrl.Equals(expectedGetRequest.GetUrl)))).ReturnsAsync(apiApiResponse);

            var actual = await handler.Handle(query, CancellationToken.None);

            actual.Vacancy.Should().BeEquivalentTo(apiApiResponse);
        }
        public void SetUp()
        {
            _getAccountResponse  = _fixture.Create <GetAccountResponse>();
            _command             = _fixture.Create <CreateApplicationCommand>();
            _response            = _fixture.Create <CreateApplicationResponse>();
            _getStandardResponse = _fixture.Create <GetStandardsListItem>();

            _account         = _fixture.Create <Account>();
            _accountsService = new Mock <IAccountsService>();
            _accountsService.Setup(x => x.GetAccount(_command.EncodedAccountId)).ReturnsAsync(_account);

            _coursesApiClient = new Mock <ICoursesApiClient <CoursesApiConfiguration> >();
            _coursesApiClient.Setup(x => x.Get <GetStandardsListItem>(It.Is <GetStandardDetailsByIdRequest>(r => r.Id == _command.StandardId)))
            .ReturnsAsync(_getStandardResponse);

            _levyTransferMatchingService = new Mock <ILevyTransferMatchingService>();

            _levyTransferMatchingService.Setup(x => x.GetAccount(It.Is <GetAccountRequest>(r => r.AccountId == _command.EmployerAccountId)))
            .ReturnsAsync(_getAccountResponse);

            _levyTransferMatchingService.Setup(x => x.CreateApplication(It.IsAny <CreateApplicationRequest>()))
            .Callback <CreateApplicationRequest>(r => _createApplicationRequest = r)
            .ReturnsAsync(_response);

            _handler = new CreateApplicationCommandHandler(_levyTransferMatchingService.Object, _accountsService.Object, Mock.Of <ILogger <CreateApplicationCommandHandler> >(), _coursesApiClient.Object);
        }
        public void Then_Maps_GetStandardsListItem_Correctly(
            GetStandardsListItem source)
        {
            var response = (ApprenticeshipCourse)source;

            response.Should().BeEquivalentTo(source,
                                             o => o
                                             .Excluding(s => s.ApprenticeshipFunding)
                                             .Excluding(s => s.MaxFunding)
                                             .Excluding(s => s.TypicalDuration)
                                             .Excluding(s => s.StandardDates)
                                             .Excluding(s => s.IsActive)
                                             .Excluding(s => s.StandardUId)
                                             .Excluding(s => s.LarsCode)
                                             );

            response.Duration.Should().Be(source.TypicalDuration);
            response.FundingCap.Should().Be(source.MaxFunding);
            response.Id.Should().Be(source.LarsCode.ToString());
            for (var i = 0; i < response.FundingPeriods.Count; i++)
            {
                response.FundingPeriods[i].FundingCap.Should().Be(source.ApprenticeshipFunding[i].MaxEmployerLevyCap);
                response.FundingPeriods[i].EffectiveFrom.Should().Be(source.ApprenticeshipFunding[i].EffectiveFrom);
                response.FundingPeriods[i].EffectiveTo.Should().Be(source.ApprenticeshipFunding[i].EffectiveTo);
            }
        }
        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,
            GetStandardsListResponse allCoursesApiResponse,
            GetUkprnsForStandardAndLocationResponse ukprnsCountResponse,
            GetApprenticeFeedbackResponse apprenticeFeedbackResponse,
            int shortlistItemCount,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient,
            [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackApiClient,
            [Frozen] Mock <IShortlistService> shortlistService,
            GetTrainingCourseProviderQueryHandler handler)
        {
            shortlistService.Setup(x => x.GetShortlistItemCount(query.ShortlistUserId))
            .ReturnsAsync(shortlistItemCount);
            ArrangeClients(query, apiResponse, apiCourseResponse, apiAchievementRateResponse, allCoursesApiResponse, ukprnsCountResponse, apprenticeFeedbackResponse, mockCoursesApiClient, mockApiClient, mockApprenticeFeedbackApiClient);

            var result = await handler.Handle(query, CancellationToken.None);

            result.ProviderStandard.Should().BeEquivalentTo(apiResponse, options => options.Excluding(s => s.ApprenticeFeedback));
            result.ProviderStandard.ApprenticeFeedback.Should().BeEquivalentTo(apprenticeFeedbackResponse);
            result.Course.Should().BeEquivalentTo(apiCourseResponse);
            result.ShortlistItemCount.Should().Be(shortlistItemCount);
            mockApiClient.Verify(x => x.Get <GetProviderStandardItem>(It.IsAny <GetProviderByCourseAndUkPrnRequest>()), Times.Once);
        }
        public void Then_The_Future_Price_Is_Not_Used(long fundingPrice, long notFundingPrice)
        {
            //Arrange / Act
            var standard = new GetStandardsListItem
            {
                Title = "Available",
                ApprenticeshipFunding = new List <ApprenticeshipFunding>
                {
                    new ApprenticeshipFunding
                    {
                        EffectiveFrom      = DateTime.UtcNow.AddDays(-10),
                        EffectiveTo        = DateTime.UtcNow.AddDays(9),
                        MaxEmployerLevyCap = fundingPrice
                    },
                    new ApprenticeshipFunding
                    {
                        EffectiveFrom      = DateTime.UtcNow.AddDays(4),
                        EffectiveTo        = null,
                        MaxEmployerLevyCap = notFundingPrice
                    }
                },
                StandardDates =
                    new StandardDate
                {
                    EffectiveFrom  = DateTime.UtcNow.AddMonths(-1),
                    LastDateStarts = null
                }
            };

            //Assert
            standard.MaxFunding.Should().Be(fundingPrice);
        }
        public void Then_The_ApprenticeshipFunding_Price_With_No_EffectiveTo_Date_And_Has_A_From_Date_In_The_Past_Is_Used(long fundingPrice)
        {
            //Arrange / Act
            var standard = new GetStandardsListItem
            {
                Title = "Available",
                ApprenticeshipFunding = new List <ApprenticeshipFunding>
                {
                    new ApprenticeshipFunding
                    {
                        EffectiveFrom      = DateTime.UtcNow.AddDays(-1),
                        EffectiveTo        = null,
                        MaxEmployerLevyCap = fundingPrice
                    }
                },
                StandardDates =
                    new StandardDate
                {
                    EffectiveFrom  = DateTime.UtcNow.AddMonths(-1),
                    LastDateStarts = null
                }
            };

            //Assert
            standard.MaxFunding.Should().Be(fundingPrice);
        }
Beispiel #16
0
        public async Task Then_If_No_Location_Found_Then_Returns_Data(
            GetEmployerCourseProviderDemandQuery query,
            GetStandardsListItem standardResult,
            GetEmployerCourseProviderListResponse demandResponse,
            [Frozen] Mock <ILocationLookupService> locationLookupService,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > coursesApiClient,
            [Frozen] Mock <IEmployerDemandApiClient <EmployerDemandApiConfiguration> > employerDemandApiClient,
            GetEmployerCourseProviderDemandQueryHandler handler)
        {
            //Arrange
            locationLookupService.Setup(x => x.GetLocationInformation(query.LocationName, 0, 0, true))
            .ReturnsAsync((LocationItem)null);
            coursesApiClient
            .Setup(x => x.Get <GetStandardsListItem>(It.Is <GetStandardRequest>(c =>
                                                                                c.StandardId.Equals(query.CourseId)))).ReturnsAsync(standardResult);
            employerDemandApiClient
            .Setup(x => x.Get <GetEmployerCourseProviderListResponse>(
                       It.Is <GetCourseProviderDemandsRequest>(c => c.GetUrl.Contains($"providers/{query.Ukprn}/courses/{query.CourseId}?lat=&lon=&radius="))))
            .ReturnsAsync(demandResponse);

            //Act
            var actual = await handler.Handle(query, CancellationToken.None);

            //Assert
            actual.Course.Should().BeEquivalentTo(standardResult);
            actual.Location.Should().BeNull();
            actual.EmployerCourseDemands.Should().BeEquivalentTo(demandResponse.EmployerCourseDemands);
            actual.Total.Should().Be(demandResponse.Total);
            actual.TotalFiltered.Should().Be(demandResponse.TotalFiltered);
        }
Beispiel #17
0
        public void Then_Maps_Fields_Appropriately(
            GetStandardsListItem source)
        {
            var response = (GetCourseListItem)source;

            response.Should().BeEquivalentTo(source, options => options.ExcludingMissingMembers());
        }
        public async Task Then_If_There_Is_A_Location_Supplied_It_Is_Searched_And_Passed_To_The_Provider_Search(
            string locationName,
            string authorityName,
            GetTrainingCourseProvidersQuery query,
            GetProvidersListResponse apiResponse,
            IEnumerable <GetApprenticeFeedbackResponse> apprenticeFeedbackResponse,
            GetStandardsListItem apiCourseResponse,
            LocationItem locationServiceResponse,
            [Frozen] Mock <ILocationLookupService> mockLocationLookupService,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient,
            [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackApiClient,
            GetTrainingCourseProvidersQueryHandler handler)
        {
            query.Location = $"{locationName}, {authorityName} ";
            query.Lat      = 0;
            query.Lon      = 0;

            var providerUkprns = apiResponse.Providers.Select(s => s.Ukprn);

            for (var i = 0; i < apprenticeFeedbackResponse.Count(); i++)
            {
                apprenticeFeedbackResponse.ToArray()[i].Ukprn = providerUkprns.ToArray()[i];
            }

            mockLocationLookupService
            .Setup(service => service.GetLocationInformation(query.Location, query.Lat, query.Lon, false))
            .ReturnsAsync(locationServiceResponse);
            mockApiClient
            .Setup(client => client.Get <GetProvidersListResponse>(It.Is <GetProvidersByCourseRequest>(c =>
                                                                                                       c.GetUrl.Contains(query.Id.ToString()) &&
                                                                                                       c.GetUrl.Contains(locationServiceResponse.GeoPoint.First().ToString()) &&
                                                                                                       c.GetUrl.Contains(locationServiceResponse.GeoPoint.Last().ToString()) &&
                                                                                                       c.GetUrl.Contains($"&sortOrder={query.SortOrder}")
                                                                                                       )))
            .ReturnsAsync(apiResponse);
            mockCoursesApiClient
            .Setup(client => client.Get <GetStandardsListItem>(It.Is <GetStandardRequest>(c => c.GetUrl.Contains(query.Id.ToString()))))
            .ReturnsAsync(apiCourseResponse);
            mockApprenticeFeedbackApiClient
            .Setup(s => s.PostWithResponseCode <IEnumerable <GetApprenticeFeedbackResponse> >(It.Is <PostApprenticeFeedbackRequest>
                                                                                                  (t =>
                                                                                                  ((PostApprenticeFeedbackRequestData)t.Data).Ukprns.Except(apiResponse.Providers.Select(s => s.Ukprn)).Count() == 0 &&
                                                                                                  apiResponse.Providers.Select(s => s.Ukprn).Except(((PostApprenticeFeedbackRequestData)t.Data).Ukprns).Count() == 0
                                                                                                  ))).ReturnsAsync(new ApiResponse <IEnumerable <GetApprenticeFeedbackResponse> >(apprenticeFeedbackResponse, HttpStatusCode.OK, string.Empty));

            var result = await handler.Handle(query, CancellationToken.None);

            result.Providers.Should().BeEquivalentTo(apiResponse.Providers, options => options.Excluding(s => s.ApprenticeFeedback));
            result.Total.Should().Be(apiResponse.TotalResults);
            result.Course.Should().BeEquivalentTo(apiCourseResponse);
            result.Location.Name.Should().Be(locationServiceResponse.Name);
            result.Location.GeoPoint.Should().BeEquivalentTo(locationServiceResponse.GeoPoint);

            foreach (var provider in result.Providers)
            {
                provider.ApprenticeFeedback.Should().BeEquivalentTo(apprenticeFeedbackResponse.First(s => s.Ukprn == provider.Ukprn));
            }
        }
Beispiel #19
0
        public async Task Then_If_There_Is_Lat_Lon_Data_The_Location_Is_Used(
            string locationName,
            string authorityName,
            GetTrainingCourseProviderQuery query,
            GetOverallAchievementRateResponse apiResponse,
            GetProviderStandardItem apiProviderStandardResponse,
            GetStandardsListItem apiCourseResponse,
            GetStandardsListResponse allCoursesApiResponse,
            LocationItem locationLookupResponse,
            GetOverallAchievementRateResponse apiAchievementRateResponse,
            GetUkprnsForStandardAndLocationResponse ukprnsCountResponse,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient,
            [Frozen] Mock <ILocationLookupService> mockLocationLookupService,
            GetTrainingCourseProviderQueryHandler handler)
        {
            mockLocationLookupService
            .Setup(service => service.GetLocationInformation(query.Location, query.Lat, query.Lon))
            .ReturnsAsync(locationLookupResponse);
            mockApiClient
            .Setup(client => client.Get <GetProviderStandardItem>(It.Is <GetProviderByCourseAndUkPrnRequest>(c =>
                                                                                                             c.GetUrl.Contains(query.CourseId.ToString()) &&
                                                                                                             c.GetUrl.Contains(query.ProviderId.ToString()) &&
                                                                                                             c.GetUrl.Contains(locationLookupResponse.GeoPoint.First().ToString()) &&
                                                                                                             c.GetUrl.Contains(locationLookupResponse.GeoPoint.Last().ToString())
                                                                                                             )))
            .ReturnsAsync(apiProviderStandardResponse);
            mockApiClient
            .Setup(client => client.Get <GetProviderAdditionalStandardsItem>(It.Is <GetProviderAdditionalStandardsRequest>(
                                                                                 c =>
                                                                                 c.GetUrl.Contains(query.ProviderId.ToString()
                                                                                                   ))))
            .ReturnsAsync(new GetProviderAdditionalStandardsItem
            {
                StandardIds = allCoursesApiResponse.Standards.Select(c => c.LarsCode).ToList()
            });
            mockCoursesApiClient
            .Setup(client =>
                   client.Get <GetStandardsListItem>(
                       It.Is <GetStandardRequest>(c => c.GetUrl.Contains(query.CourseId.ToString()))))
            .ReturnsAsync(apiCourseResponse);
            mockApiClient
            .Setup(x => x.Get <GetUkprnsForStandardAndLocationResponse>(
                       It.Is <GetUkprnsForStandardAndLocationRequest>(c => c.GetUrl.Contains(query.CourseId.ToString()))))
            .ReturnsAsync(ukprnsCountResponse);
            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);

            var result = await handler.Handle(query, CancellationToken.None);

            result.ProviderStandard.Should().BeEquivalentTo(apiProviderStandardResponse);
            result.Location.Should().BeEquivalentTo(locationLookupResponse);
        }
        public async Task Then_Gets_The_Standard_And_The_List_Of_Providers_For_That_Course_From_Course_Delivery_Api_Client_With_No_Location_And_ShortlistItem_Count(
            GetTrainingCourseProvidersQuery query,
            GetProvidersListResponse apiResponse,
            GetStandardsListItem apiCourseResponse,
            IEnumerable <GetApprenticeFeedbackResponse> apprenticeFeedbackResponse,
            int shortlistItemCount,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient,
            [Frozen] Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackApiClient,
            [Frozen] Mock <IShortlistService> shortlistService,
            [Frozen] Mock <ILocationLookupService> mockLocationLookup,
            GetTrainingCourseProvidersQueryHandler handler)
        {
            apiCourseResponse.Level = 1;
            query.Location          = "";
            query.Lat = 0;
            query.Lon = 0;

            var providerUkprns = apiResponse.Providers.Select(s => s.Ukprn);

            for (var i = 0; i < apprenticeFeedbackResponse.Count(); i++)
            {
                apprenticeFeedbackResponse.ToArray()[i].Ukprn = providerUkprns.ToArray()[i];
            }

            mockApiClient
            .Setup(client => client.Get <GetProvidersListResponse>(It.Is <GetProvidersByCourseRequest>(c =>
                                                                                                       c.GetUrl.Contains(query.Id.ToString()) &&
                                                                                                       c.GetUrl.Contains($"sectorSubjectArea={apiCourseResponse.SectorSubjectAreaTier2Description}&level={apiCourseResponse.Level}")
                                                                                                       )))
            .ReturnsAsync(apiResponse);
            mockCoursesApiClient
            .Setup(client => client.Get <GetStandardsListItem>(It.Is <GetStandardRequest>(c => c.GetUrl.Contains(query.Id.ToString()))))
            .ReturnsAsync(apiCourseResponse);
            shortlistService.Setup(x => x.GetShortlistItemCount(query.ShortlistUserId))
            .ReturnsAsync(shortlistItemCount);
            mockLocationLookup
            .Setup(service => service.GetLocationInformation(query.Location, query.Lat, query.Lon, false))
            .ReturnsAsync((LocationItem)null);
            mockApprenticeFeedbackApiClient
            .Setup(s => s.PostWithResponseCode <IEnumerable <GetApprenticeFeedbackResponse> >(It.Is <PostApprenticeFeedbackRequest>
                                                                                                  (t =>
                                                                                                  ((PostApprenticeFeedbackRequestData)t.Data).Ukprns.Except(apiResponse.Providers.Select(s => s.Ukprn)).Count() == 0 &&
                                                                                                  apiResponse.Providers.Select(s => s.Ukprn).Except(((PostApprenticeFeedbackRequestData)t.Data).Ukprns).Count() == 0
                                                                                                  ))).ReturnsAsync(new ApiResponse <IEnumerable <GetApprenticeFeedbackResponse> >(apprenticeFeedbackResponse, HttpStatusCode.OK, string.Empty));

            var result = await handler.Handle(query, CancellationToken.None);

            result.Providers.Should().BeEquivalentTo(apiResponse.Providers, options => options.Excluding(s => s.ApprenticeFeedback));
            result.Total.Should().Be(apiResponse.TotalResults);
            result.Course.Should().BeEquivalentTo(apiCourseResponse);
            result.ShortlistItemCount.Should().Be(shortlistItemCount);
            result.Location.Should().BeNull();

            foreach (var provider in result.Providers)
            {
                provider.ApprenticeFeedback.Should().BeEquivalentTo(apprenticeFeedbackResponse.First(s => s.Ukprn == provider.Ukprn));
            }
        }
Beispiel #21
0
        public void Then_The_Fields_Are_Correctly_Mapped(GetStandardsListItem source)
        {
            //Act
            var actual = (GetStandardsResponseItem)source;

            //Assert
            actual.Id.Should().Be(source.LarsCode);
        }
        private static void ArrangeClients(
            GetTrainingCourseProviderQuery query,
            GetProviderStandardItem apiProviderStandardResponse,
            GetStandardsListItem apiCourseResponse,
            GetOverallAchievementRateResponse apiAchievementRateResponse,
            GetStandardsListResponse allCoursesApiResponse,
            GetUkprnsForStandardAndLocationResponse ukprnsCountResponse,
            GetApprenticeFeedbackResponse apprenticeFeedbackResponse,
            Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockApiClient,
            Mock <IApprenticeFeedbackApiClient <ApprenticeFeedbackApiConfiguration> > mockApprenticeFeedbackClient)
        {
            mockApiClient
            .Setup(client => client.Get <GetProviderStandardItem>(It.Is <GetProviderByCourseAndUkPrnRequest>(c =>
                                                                                                             c.GetUrl.Contains(query.CourseId.ToString()) &&
                                                                                                             c.GetUrl.Contains(query.ProviderId.ToString()) &&
                                                                                                             c.GetUrl.Contains(apiCourseResponse.SectorSubjectAreaTier2Description) &&
                                                                                                             c.GetUrl.Contains($"shortlistUserId={query.ShortlistUserId}")
                                                                                                             )))
            .ReturnsAsync(apiProviderStandardResponse);

            mockApiClient
            .Setup(client => client.Get <GetProviderAdditionalStandardsItem>(It.Is <GetProviderAdditionalStandardsRequest>(
                                                                                 c =>
                                                                                 c.GetUrl.Contains(query.ProviderId.ToString()
                                                                                                   ))))
            .ReturnsAsync(new GetProviderAdditionalStandardsItem
            {
                StandardIds = allCoursesApiResponse.Standards.Select(c => c.LarsCode).ToList()
            });

            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);
            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);

            apprenticeFeedbackResponse.Ukprn = query.ProviderId;
            mockApprenticeFeedbackClient
            .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));
        }
        public void And_No_Standard_Funding_Periods_Then_Duration_Is_Zero(
            GetStandardsListItem source)
        {
            source.ApprenticeshipFunding = new List <ApprenticeshipFunding>();

            var response = (ApprenticeshipCourse)source;

            response.Duration.Should().Be(0);
        }
Beispiel #24
0
        public void Then_CoreSkillCount_Is_Set_When_CoreAndOptions_Is_True(
            GetStandardsListItem source)
        {
            source.CoreAndOptions = true;

            var response = (GetTrainingCourseListItem)source;

            response.CoreSkillsCount.Should().BeEquivalentTo(source.CoreDuties);
        }
Beispiel #25
0
        public void Then_CoreSkillCount_Is_Set_When_CoreAndOptions_Is_False(
            GetStandardsListItem source)
        {
            source.CoreAndOptions = false;
            var expectedSkills = string.Join("|", source.Skills.Select(s => s));

            var response = (GetTrainingCourseListItem)source;

            response.CoreSkillsCount.Should().BeEquivalentTo(expectedSkills);
        }
Beispiel #26
0
        public void Then_Maps_Fields_Appropriately(
            GetStandardsListItem source)
        {
            var response = (GetTrainingCourseListItem)source;

            response.Should().BeEquivalentTo(source, options => options
                                             .Excluding(c => c.ApprenticeshipFunding)
                                             .Excluding(c => c.StandardDates)
                                             );
        }
Beispiel #27
0
        public void Then_Maps_Fields_Appropriately(
            GetStandardsListItem source)
        {
            var response = (GetTrainingCoursesListItem)source;

            response.Should().BeEquivalentTo(source, options => options
                                             .Excluding(r => r.StandardUId)
                                             .Excluding(r => r.LarsCode));
            response.Id.Should().Be(source.LarsCode);
        }
Beispiel #28
0
        public async Task Then_If_Demand_Feature_Is_Not_Enabled_Then_False_Returned_And_Api_Not_Called(
            GetTrainingCourseQuery query,
            GetStandardsListItem coursesApiResponse,
            GetLevelsListResponse levelsApiResponse,
            GetUkprnsForStandardAndLocationResponse courseDirectoryApiResponse,
            int shortlistItemCount,
            GetShowEmployerDemandResponse showEmployerDemandResponse,
            [Frozen] Mock <IOptions <FindApprenticeshipTrainingConfiguration> > config,
            [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > mockCoursesApiClient,
            [Frozen] Mock <ICourseDeliveryApiClient <CourseDeliveryApiConfiguration> > mockCourseDeliveryApiClient,
            [Frozen] Mock <IShortlistService> shortlistService,
            [Frozen] Mock <IEmployerDemandApiClient <EmployerDemandApiConfiguration> > mockEmployerDemandApiClient,
            GetTrainingCourseQueryHandler handler)
        {
            //Arrange
            config.Object.Value.EmployerDemandFeatureToggle = false;
            levelsApiResponse.Levels.First().Name = "GCSE";
            levelsApiResponse.Levels.First().Code = 2;
            coursesApiResponse.Level           = 2;
            coursesApiResponse.LevelEquivalent = levelsApiResponse.Levels
                                                 .Single(x => x.Code == coursesApiResponse.Level).Name;
            var url = new GetUkprnsForStandardAndLocationRequest(query.Id, query.Lat, query.Lon).GetUrl;

            mockCoursesApiClient
            .Setup(client => client.Get <GetStandardsListItem>(It.Is <GetStandardRequest>(c => c.GetUrl.Contains($"api/courses/standards/{query.Id}"))))
            .ReturnsAsync(coursesApiResponse);
            shortlistService.Setup(x => x.GetShortlistItemCount(query.ShortlistUserId))
            .ReturnsAsync(shortlistItemCount);
            mockCourseDeliveryApiClient
            .Setup(client =>
                   client.Get <GetUkprnsForStandardAndLocationResponse>(
                       It.Is <GetUkprnsForStandardAndLocationRequest>((c =>
                                                                       c.GetUrl.Equals(url)))))
            .ReturnsAsync(courseDirectoryApiResponse);
            mockCoursesApiClient
            .Setup(client => client.Get <GetLevelsListResponse>(It.IsAny <GetLevelsListRequest>()))
            .ReturnsAsync(levelsApiResponse);
            mockEmployerDemandApiClient
            .Setup(client => client.GetResponseCode(It.IsAny <GetShowEmployerDemandRequest>()))
            .ReturnsAsync(HttpStatusCode.OK);

            //Act
            var result = await handler.Handle(query, CancellationToken.None);

            //Assert
            result.Course.Should().BeEquivalentTo(coursesApiResponse);
            result.Course.LevelEquivalent.Should().Be("GCSE");
            result.ProvidersCount.Should().Be(courseDirectoryApiResponse.UkprnsByStandard.ToList().Count);
            result.ProvidersCountAtLocation.Should().Be(courseDirectoryApiResponse.UkprnsByStandardAndLocation.ToList().Count);
            result.ShortlistItemCount.Should().Be(shortlistItemCount);
            result.ShowEmployerDemand.Should().BeFalse();
            mockEmployerDemandApiClient
            .Verify(client => client.GetResponseCode(It.IsAny <GetShowEmployerDemandRequest>()), Times.Never);
        }
        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>());
        }
Beispiel #30
0
        public void And_If_More_Than_One_Typical_Job_Title_Then_Titles_Are_Ordered_Alphabetically(
            GetStandardsListItem source)
        {
            source.TypicalJobTitles = "B|Z|A|V";

            var expected = new List <string> {
                "A", "B", "V", "Z"
            };

            var response = (GetTrainingCourseListItem)source;

            Assert.AreEqual(response.TypicalJobTitles, expected);
        }