Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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 });
        }
Exemplo n.º 3
0
        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);
        }