public void Then_The_Request_Data_Is_Sent(Guid id, string email, int ukprn, PostVacancyRequestData data) { var actual = new PostVacancyRequest(id, ukprn, email, data); var actualData = actual.Data as PostVacancyRequestData; actualData.Should().BeEquivalentTo(data); }
public async Task <CreateVacancyCommandResponse> Handle(CreateVacancyCommand request, CancellationToken cancellationToken) { var accountLegalEntity = await _accountLegalEntityPermissionService.GetAccountLegalEntity( request.AccountIdentifier, request.PostVacancyRequestData.AccountLegalEntityPublicHashedId); if (accountLegalEntity == null) { throw new SecurityException(); } request.PostVacancyRequestData.LegalEntityName = accountLegalEntity.Name; if (request.AccountIdentifier.AccountType == AccountType.Provider) { request.PostVacancyRequestData.EmployerAccountId = accountLegalEntity.AccountHashedId; } if (request.PostVacancyRequestData.EmployerNameOption == EmployerNameOption.RegisteredName) { request.PostVacancyRequestData.EmployerName = accountLegalEntity.Name; } IPostApiRequest apiRequest; if (request.IsSandbox) { apiRequest = new PostValidateVacancyRequest(request.Id, request.PostVacancyRequestData); } else { if (request.AccountIdentifier.AccountType == AccountType.Provider) { apiRequest = new PostVacancyRequest(request.Id, request.PostVacancyRequestData.User.Ukprn, "", request.PostVacancyRequestData); } else { apiRequest = new PostVacancyRequest(request.Id, request.PostVacancyRequestData.User.Ukprn, request.PostVacancyRequestData.User.Email, request.PostVacancyRequestData); } } var result = await _recruitApiClient.PostWithResponseCode <string>(apiRequest); if (!((int)result.StatusCode >= 200 && (int)result.StatusCode <= 299)) { if (result.StatusCode.Equals(HttpStatusCode.BadRequest)) { throw new HttpRequestContentException($"Response status code does not indicate success: {(int)result.StatusCode} ({result.StatusCode})", result.StatusCode, result.ErrorContent); } throw new Exception( $"Response status code does not indicate success: {(int) result.StatusCode} ({result.StatusCode})"); } return(new CreateVacancyCommandResponse { VacancyReference = result.Body }); }
public void Then_The_Url_Is_Correctly_Built(Guid id, string email, int ukprn, PostVacancyRequestData data) { var actual = new PostVacancyRequest(id, ukprn, email, data); actual.PostUrl.Should().Be($"api/Vacancies/{id}?ukprn={ukprn}&userEmail={email}"); }