コード例 #1
0
        public static async Task CreateBuyerAsync_CreateBuyerService_CreateAsync_CalledOnce()
        {
            var context = UsersControllerTestContext.Setup();

            var controller = context.Controller;

            var organisationId             = Guid.NewGuid();
            var createUserRequestViewModel = new CreateBuyerRequestModel
            {
                FirstName    = "Bob",
                LastName     = "Smith",
                PhoneNumber  = "98654321",
                EmailAddress = "*****@*****.**",
            };

            await controller.CreateBuyerAsync(organisationId, createUserRequestViewModel);

            var expected = CreateBuyerRequestBuilder
                           .Create()
                           .WithFirstName(createUserRequestViewModel.FirstName)
                           .WithLastName(createUserRequestViewModel.LastName)
                           .WithPhoneNumber(createUserRequestViewModel.PhoneNumber)
                           .WithEmailAddress(createUserRequestViewModel.EmailAddress)
                           .WithPrimaryOrganisationId(organisationId)
                           .Build();

            context.CreateBuyerServiceMock.Verify(s => s.CreateAsync(expected));
        }
コード例 #2
0
        public static async Task CreateBuyerAsync_CreateBuyerFailureResult_ReturnsBadRequest()
        {
            var errors = new List <ErrorDetails> {
                new("TestErrorId", "TestField")
            };

            var context = UsersControllerTestContext.Setup();

            context.CreateBuyerResult = Result.Failure <string>(errors);

            var organisationId             = Guid.NewGuid();
            var createUserRequestViewModel = new CreateBuyerRequestModel();

            var response = await context.Controller.CreateBuyerAsync(organisationId, createUserRequestViewModel);

            response.Should().BeOfType <ActionResult <CreateBuyerResponseModel> >();
            var actual = response.Result;

            var expectedErrors = new List <ErrorMessageViewModel> {
                new("TestErrorId", "TestField")
            };
            var expected = new BadRequestObjectResult(new CreateBuyerResponseModel {
                Errors = expectedErrors
            });

            actual.Should().BeEquivalentTo(expected);
        }
コード例 #3
0
        public async Task <ActionResult <CreateBuyerResponseModel> > CreateBuyerAsync(Guid organisationId, CreateBuyerRequestModel createBuyerRequest)
        {
            if (createBuyerRequest is null)
            {
                throw new ArgumentNullException(nameof(createBuyerRequest));
            }

            var response = new CreateBuyerResponseModel();

            var result = await createBuyerService.CreateAsync(new CreateBuyerRequest(
                                                                  organisationId,
                                                                  createBuyerRequest.FirstName,
                                                                  createBuyerRequest.LastName,
                                                                  createBuyerRequest.PhoneNumber,
                                                                  createBuyerRequest.EmailAddress));

            if (result.IsSuccess)
            {
                response.UserId = result.Value;
                return(CreatedAtAction(nameof(GetUserByIdAsync).TrimAsync(), null, new { userId = result.Value }, response));
            }

            response.Errors = result.Errors.Select(d => new ErrorMessageViewModel(d.Id, d.Field));
            return(BadRequest(response));
        }