コード例 #1
0
        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);
        }