public async Task ShouldPatchEntry() { var initialEntry = Mother.GenericEntry; var updateEntryRequest = Mother.UpdateEntryRequest; var hydratedEntryRequest = Mother.HydratedUpdateEntryRequest; var updatedEntry = Mother.UpdatedEntry; var updatedEntryResponse = Mother.UpdatedEntryResponse; var patchDocument = new JsonPatchDocument <UpdateEntryRequest>(); patchDocument.Add(e => e.Content, updatedEntry.Content); _mapper .Setup(m => m.Map <HydratedUpdateEntryRequest>(initialEntry)) .Returns(hydratedEntryRequest); _mapper .Setup(m => m.Map <Entry>(hydratedEntryRequest)) .Returns(updatedEntry); _mapper .Setup(m => m.Map <EntryResponse>(updatedEntry)) .Returns(updatedEntryResponse); _entryAccess .Setup(ea => ea.GetByIdAsync(initialEntry.Id)) .ReturnsAsync(initialEntry); _entryAccess .Setup(ea => ea.UpdateAsync(updatedEntry)) .ReturnsAsync(true); var actual = await _sut.Patch(initialEntry.Id, patchDocument); var result = (OkObjectResult)actual; Assert.AreEqual(updateEntryRequest.Content, ((EntryResponse)result.Value).Content); }