public async Task TestResourceDoesExistShouldApplyPatch() { var repository = new InMemoryFhirRepository(); var resource = await repository.CreateResourceAsync(FhirResourceProvider.Patient); var patchedResource = new Patient(); resource.CopyTo(patchedResource); patchedResource.BirthDate = "01.01.1111"; var patchApplier = new Mock <IPatchApplier>(); patchApplier.Setup(p => p.ApplyTo(It.IsAny <Resource>(), It.IsAny <List <PatchOperation> >())).Returns(patchedResource); var interactor = new PatchResourceInteractor(repository, patchApplier.Object); var response = await interactor.ExecuteAsync( new PatchResourceRequest { ResourceId = resource.Id, Payload = "[{ \"op\": \"test\", \"path\": \"/a/b/c\", \"value\": \"foo\" }]" }); var savedResource = await repository.ReadResourceAsync(resource.Id); Assert.AreEqual(ResponseCode.Success, response.Code); Assert.AreEqual("01.01.1111", ((Patient)response.Resource).BirthDate); Assert.AreEqual("01.01.1111", ((Patient)savedResource).BirthDate); }
public async Task TestResourceDoesNotExistShouldReturnErrorCode() { var repository = new Mock <IFhirRepository>(); repository.Setup(r => r.ReadResourceAsync(It.IsAny <string>())).ThrowsAsync(new ResourceNotFoundException("7812456")); var interactor = new PatchResourceInteractor(repository.Object, null); var result = await interactor.ExecuteAsync(new PatchResourceRequest { ResourceId = "7812456" }); Assert.AreEqual(ResponseCode.ResourceNotFound, result.Code); }