public FhirRepositoryTests() { _dataStore = Substitute.For <IDataStore>(); _conformanceProvider = Substitute.For <ConformanceProviderBase>(); // TODO: FhirRepository instantiate ResourceDeserializer class directly // which will try to deserialize the raw resource. We should mock it as well. _rawResourceFactory = Substitute.For <RawResourceFactory>(new FhirJsonSerializer()); _resourceWrapperFactory = Substitute.For <IResourceWrapperFactory>(); _resourceWrapperFactory .Create(Arg.Any <Resource>(), Arg.Any <bool>()) .Returns(x => CreateResourceWrapper(x.ArgAt <Resource>(0), x.ArgAt <bool>(1))); _conformanceStatement = CapabilityStatementMock.GetMockedCapabilityStatement(); CapabilityStatementMock.SetupMockResource(_conformanceStatement, ResourceType.Observation, null); var observationResource = _conformanceStatement.Rest.First().Resource.Find(x => x.Type == ResourceType.Observation); observationResource.ReadHistory = false; observationResource.UpdateCreate = true; observationResource.Versioning = CapabilityStatement.ResourceVersionPolicy.Versioned; CapabilityStatementMock.SetupMockResource(_conformanceStatement, ResourceType.Patient, null); var patientResource = _conformanceStatement.Rest.First().Resource.Find(x => x.Type == ResourceType.Patient); patientResource.ReadHistory = true; patientResource.UpdateCreate = true; patientResource.Versioning = CapabilityStatement.ResourceVersionPolicy.VersionedUpdate; _conformanceProvider.GetCapabilityStatementAsync().Returns(_conformanceStatement); _repository = new FhirRepository(_dataStore, new Lazy <IConformanceProvider>(() => _conformanceProvider), _resourceWrapperFactory); }
public async Task GivenANewResource_WhenUpserting_ThenTheVersionStartsAt1() { var saveResult = await FhirRepository.UpsertAsync(Samples.GetJsonSample("Weight")); Assert.Equal("1", saveResult.Resource.Meta.VersionId); saveResult = await FhirRepository.UpsertAsync(saveResult.Resource); Assert.Equal("2", saveResult.Resource.Meta.VersionId); }
public FhirStorageTestsBase(IDataStore dataStore) { _conformance = CapabilityStatementMock.GetMockedCapabilityStatement(); CapabilityStatementMock.SetupMockResource(_conformance, ResourceType.Observation, null); var observationResource = _conformance.Rest[0].Resource.Find(r => r.Type == ResourceType.Observation); observationResource.UpdateCreate = true; observationResource.Versioning = CapabilityStatement.ResourceVersionPolicy.Versioned; CapabilityStatementMock.SetupMockResource(_conformance, ResourceType.Organization, null); var organizationResource = _conformance.Rest[0].Resource.Find(r => r.Type == ResourceType.Organization); organizationResource.UpdateCreate = true; organizationResource.Versioning = CapabilityStatement.ResourceVersionPolicy.NoVersion; var provider = Substitute.For <ConformanceProviderBase>(); provider.GetCapabilityStatementAsync().Returns(_conformance); // TODO: FhirRepository instantiate ResourceDeserializer class directly // which will try to deserialize the raw resource. We should mock it as well. var rawResourceFactory = Substitute.For <RawResourceFactory>(new FhirJsonSerializer()); _resourceWrapperFactory = Substitute.For <IResourceWrapperFactory>(); _resourceWrapperFactory .Create(Arg.Any <Resource>(), Arg.Any <bool>()) .Returns(x => { Resource resource = x.ArgAt <Resource>(0); return(new ResourceWrapper(resource, rawResourceFactory.Create(resource), new ResourceRequest("http://fhir", HttpMethod.Post), x.ArgAt <bool>(1), null, null, null)); }); FhirRepository = new FhirRepository(dataStore, new Lazy <IConformanceProvider>(() => provider), _resourceWrapperFactory); }
public Fhir(FhirRepository repository) { _repository = repository; }
public UsecaseInteractor(FhirRepository repository) { this.Repository = repository; }
/// <inheritdoc /> public ReadResourceInteractor(FhirRepository repository) : base(repository) { }
/// <inheritdoc /> public CreateResourceInteractor(FhirRepository repository) : base(repository) { }