public async Task And_The_AccountLegalEntityPublicHashedId_And_Ukprn_Is_Not_Null_And_AccountPublicHashedId_Is_Null_Then_Permission_Checked( GetVacanciesQuery query, GetVacanciesResponse apiResponse, AccountLegalEntityItem accountLegalEntityItem, GetStandardsListResponse courses, [Frozen] Mock <ICourseService> courseService, [Frozen] Mock <IAccountLegalEntityPermissionService> accountLegalEntityPermissionService, [Frozen] Mock <IFindApprenticeshipApiClient <FindApprenticeshipApiConfiguration> > apiClient, GetVacanciesQueryHandler handler) { query.Routes = null; query.AccountIdentifier = new AccountIdentifier("Employer-ABC123-Product"); var expectedGetRequest = new GetVacanciesRequest(query.PageNumber, query.PageSize, query.AccountLegalEntityPublicHashedId, query.Ukprn, query.AccountPublicHashedId, query.StandardLarsCode, query.NationWideOnly, query.Lat, query.Lon, query.DistanceInMiles, new List <string>(), query.PostedInLastNumberOfDays, query.Sort); courseService.Setup(x => x.MapRoutesToCategories(query.Routes)).Returns(new List <string>()); apiClient.Setup(x => x.Get <GetVacanciesResponse>(It.Is <GetVacanciesRequest>(c => c.GetUrl.Equals(expectedGetRequest.GetUrl)))).ReturnsAsync(apiResponse); accountLegalEntityPermissionService .Setup(x => x.GetAccountLegalEntity(It.Is <AccountIdentifier>(c => c.Equals(query.AccountIdentifier)), query.AccountLegalEntityPublicHashedId)).ReturnsAsync(accountLegalEntityItem); courseService.Setup(x => x.GetActiveStandards <GetStandardsListResponse>(nameof(GetStandardsListResponse))).ReturnsAsync(courses); var actual = await handler.Handle(query, CancellationToken.None); actual.Vacancies.Should().BeEquivalentTo(apiResponse.ApprenticeshipVacancies); }
public async Task Then_The_Command_Is_Handled_With_Account_Info_looked_Up_For_Provider_And_Api_Called_With_Response( int accountIdentifierId, string responseValue, CreateVacancyCommand command, AccountLegalEntityItem accountLegalEntityItem, [Frozen] Mock <IAccountLegalEntityPermissionService> accountLegalEntityPermissionService, [Frozen] Mock <IRecruitApiClient <RecruitApiConfiguration> > mockRecruitApiClient, CreateVacancyCommandHandler handler) { //Arrange command.AccountIdentifier = new AccountIdentifier($"Provider-{accountIdentifierId}-Product"); command.IsSandbox = false; var apiResponse = new ApiResponse <string>(responseValue, HttpStatusCode.Created, ""); mockRecruitApiClient.Setup(x => x.PostWithResponseCode <string>( It.Is <PostVacancyRequest>(c => c.PostUrl.Contains($"{command.Id.ToString()}?ukprn={command.PostVacancyRequestData.User.Ukprn}&userEmail=") && ((PostVacancyRequestData)c.Data).Title.Equals(command.PostVacancyRequestData.Title) && ((PostVacancyRequestData)c.Data).LegalEntityName.Equals(accountLegalEntityItem.Name) && ((PostVacancyRequestData)c.Data).EmployerAccountId.Equals(accountLegalEntityItem.AccountHashedId) ))) .ReturnsAsync(apiResponse); accountLegalEntityPermissionService .Setup(x => x.GetAccountLegalEntity(It.Is <AccountIdentifier>(c => c.Equals(command.AccountIdentifier)), command.PostVacancyRequestData.AccountLegalEntityPublicHashedId)) .ReturnsAsync(accountLegalEntityItem); //Act var result = await handler.Handle(command, CancellationToken.None); //Assert result.VacancyReference.Should().Be(apiResponse.Body); mockRecruitApiClient.Verify(client => client.PostWithResponseCode <string>(It.IsAny <PostValidateVacancyRequest>()), Times.Never); }