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); }