public async Task Sandbox_Special_Case_Guids( string guid, bool isSandbox, HttpStatusCode expectedStatusCode, CreateVacancyCommandResponse mediatorResponse, CreateVacancyRequest request, [Frozen] Mock <IMediator> mockMediator, [Greedy] VacancyController controller) { var id = Guid.Parse(guid); var accountId = "ABC123"; var accountIdentifier = $"Employer-{accountId}-Product"; mockMediator.Setup(x => x.Send(It.Is <CreateVacancyCommand>(c => c.Id.Equals(id) && c.PostVacancyRequestData.Title.Equals(request.Title) && c.PostVacancyRequestData.EmployerAccountId.Equals(accountId.ToUpper()) && c.IsSandbox.Equals(isSandbox) ), CancellationToken.None)) .ReturnsAsync(mediatorResponse); var controllerResult = await controller.CreateVacancy(accountIdentifier, id, request, isSandbox) as IStatusCodeActionResult; controllerResult.StatusCode.Should().Be((int)expectedStatusCode); }
public async Task Then_The_Request_Is_Handled_And_Response_Returned_And_Type_Set_For_Provider( int ukprn, Guid id, CreateVacancyCommandResponse mediatorResponse, CreateVacancyRequest request, [Frozen] Mock <IMediator> mockMediator, [Greedy] VacancyController controller) { var accountIdentifier = $"Provider-{ukprn}-product"; mockMediator.Setup(x => x.Send(It.Is <CreateVacancyCommand>(c => c.Id.Equals(id) && c.AccountIdentifier.AccountType == AccountType.Provider && c.AccountIdentifier.Ukprn == ukprn && c.AccountIdentifier.AccountHashedId == null && c.PostVacancyRequestData.Title.Equals(request.Title) && c.PostVacancyRequestData.User.Ukprn.Equals(ukprn) && c.PostVacancyRequestData.OwnerType.Equals(OwnerType.Provider) && c.PostVacancyRequestData.ProviderContact.Name.Equals(request.SubmitterContactDetails.Name) && c.PostVacancyRequestData.ProviderContact.Phone.Equals(request.SubmitterContactDetails.Phone) && c.PostVacancyRequestData.ProviderContact.Email.Equals(request.SubmitterContactDetails.Email) && c.IsSandbox.Equals(false) ), CancellationToken.None)) .ReturnsAsync(mediatorResponse); var controllerResult = await controller.CreateVacancy(accountIdentifier, id, request) as CreatedResult; controllerResult !.StatusCode.Should().Be((int)HttpStatusCode.Created); controllerResult.Value.Should().BeEquivalentTo(new { mediatorResponse.VacancyReference }); }
public async Task ValidateVacancy_Then_The_Request_Is_Sent_To_Mediator_Command( Guid id, long vacancyRef, string userEmail, long ukprn, CreateVacancyRequest request, CreateVacancyCommandResponse response, [Frozen] Mock <IMediator> mediator, [Greedy] VacanciesController controller) { response.ResultCode = ResponseCode.Created; response.Data = vacancyRef; mediator.Setup(x => x.Send(It.Is <CreateVacancyCommand>(c => c.Vacancy.Title.Equals(request.Title) && c.Vacancy.Id.Equals(id) && c.VacancyUserDetails.Email.Equals(userEmail) && c.VacancyUserDetails.Ukprn.Equals(ukprn) && c.ValidateOnly ), CancellationToken.None)) .ReturnsAsync(response); var actual = await controller.Validate(id, request, userEmail, ukprn) as CreatedResult; Assert.NotNull(actual); actual.StatusCode.Should().Be((int)HttpStatusCode.Created); var actualResult = actual.Value as long?; Assert.NotNull(actualResult); actualResult.Value.Should().Be((long)response.Data); }