Пример #1
0
        public async Task PatchContactHttpTrigger_ReturnsUnprocessableEntity_WhenEmptyPatchingEmailWithAnAssociatedDigitalEntity()
        {
            // Arange
            var patch = new ContactDetailsPatch()
            {
                EmailAddress = ""
            };

            _httpRequestMessageHelper.GetContactDetailsFromRequest <Models.ContactDetailsPatch>(_request).Returns(Task.FromResult(patch).Result);
            _resourceHelper.DoesCustomerExist(Arg.Any <Guid>()).ReturnsForAnyArgs(true);
            _patchContactHttpTriggerService.GetContactDetailsForCustomerAsync(Arg.Any <Guid>(), Arg.Any <Guid>()).Returns(Task.FromResult(new ContactDetails()
            {
                CustomerId = new Guid(ValidCustomerId)
            }));
            _provider.GetIdentityForCustomerAsync(Arg.Any <Guid>()).Returns(Task.FromResult(new DigitalIdentity()
            {
                CustomerId = new Guid(ValidCustomerId)
            }));
            _patchContactHttpTriggerService.UpdateAsync(Arg.Any <Models.ContactDetails>(), Arg.Any <Models.ContactDetailsPatch>()).Returns(Task.FromResult <Models.ContactDetails>(new ContactDetails()).Result);

            // Act
            var result = await RunFunction(ValidCustomerId, ValidContactId);

            // Assert
            Assert.IsInstanceOf <HttpResponseMessage>(result);
            Assert.AreEqual(422, (int)result.StatusCode);
        }
        public async Task <ContactDetails> UpdateAsync(ContactDetails contactdetails, ContactDetailsPatch contactdetailsPatch)
        {
            if (contactdetails == null)
            {
                return(null);
            }

            contactdetailsPatch.SetDefaultValues();
            contactdetails.Patch(contactdetailsPatch);

            var documentDbProvider = new DocumentDBProvider();
            var response           = await documentDbProvider.UpdateContactDetailsAsync(contactdetails);

            var responseStatusCode = response.StatusCode;

            return(responseStatusCode == HttpStatusCode.OK ? contactdetails : null);
        }