public ContentTypeService( IConformanceProvider conformanceProvider, IEnumerable <TextOutputFormatter> outputFormatters) { EnsureArg.IsNotNull(conformanceProvider, nameof(conformanceProvider)); EnsureArg.IsNotNull(outputFormatters, nameof(outputFormatters)); _conformanceProvider = conformanceProvider; _outputFormatters = outputFormatters.ToArray(); }
public ResourceHandlerTests() { _fhirDataStore = Substitute.For <IFhirDataStore>(); _conformanceProvider = Substitute.For <ConformanceProviderBase>(); _searchService = Substitute.For <ISearchService>(); // 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 <ResourceElement>(), Arg.Any <bool>()) .Returns(x => CreateResourceWrapper(x.ArgAt <ResourceElement>(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.ConditionalCreate = true; observationResource.ConditionalUpdate = 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.ConditionalCreate = true; patientResource.ConditionalUpdate = true; patientResource.Versioning = CapabilityStatement.ResourceVersionPolicy.VersionedUpdate; _conformanceProvider.GetCapabilityStatementAsync().Returns(_conformanceStatement.ToTypedElement().ToResourceElement()); var lazyConformanceProvider = new Lazy <IConformanceProvider>(() => _conformanceProvider); var collection = new ServiceCollection(); // an auth service that allows all. _authorizationService = Substitute.For <IFhirAuthorizationService>(); _authorizationService.CheckAccess(Arg.Any <DataActions>()).Returns(ci => ci.Arg <DataActions>()); _resourceIdProvider = new ResourceIdProvider(); collection.Add(x => _mediator).Singleton().AsSelf(); collection.Add(x => new CreateResourceHandler(_fhirDataStore, lazyConformanceProvider, _resourceWrapperFactory, _searchService, _resourceIdProvider, _authorizationService)).Singleton().AsSelf().AsImplementedInterfaces(); collection.Add(x => new UpsertResourceHandler(_fhirDataStore, lazyConformanceProvider, _resourceWrapperFactory, _resourceIdProvider, _authorizationService)).Singleton().AsSelf().AsImplementedInterfaces(); collection.Add(x => new ConditionalCreateResourceHandler(_fhirDataStore, lazyConformanceProvider, _resourceWrapperFactory, _searchService, x.GetService <IMediator>(), _resourceIdProvider, _authorizationService)).Singleton().AsSelf().AsImplementedInterfaces(); collection.Add(x => new ConditionalUpsertResourceHandler(_fhirDataStore, lazyConformanceProvider, _resourceWrapperFactory, _searchService, x.GetService <IMediator>(), _resourceIdProvider, _authorizationService)).Singleton().AsSelf().AsImplementedInterfaces(); collection.Add(x => new GetResourceHandler(_fhirDataStore, lazyConformanceProvider, _resourceWrapperFactory, Deserializers.ResourceDeserializer, _resourceIdProvider, _authorizationService)).Singleton().AsSelf().AsImplementedInterfaces(); collection.Add(x => new DeleteResourceHandler(_fhirDataStore, lazyConformanceProvider, _resourceWrapperFactory, _resourceIdProvider, _authorizationService)).Singleton().AsSelf().AsImplementedInterfaces(); ServiceProvider provider = collection.BuildServiceProvider(); _mediator = new Mediator(type => provider.GetService(type)); }
public static async Task <bool> CanKeepHistory(this IConformanceProvider conformanceProvider, string resourceType, CancellationToken cancellationToken = default(CancellationToken)) { return(await conformanceProvider.SatisfiesAsync( new[] { new CapabilityQuery( $"CapabilityStatement.rest.resource.where(type = '{resourceType}').where(versioning = 'versioned-update').exists()" + $"or CapabilityStatement.rest.resource.where(type = '{resourceType}').where(versioning = 'versioned').exists()"), }, cancellationToken)); }
public GetCapabilitiesHandler(IConformanceProvider provider, ISystemConformanceProvider systemConformanceProvider, FhirJsonParser parser, IUrlResolver urlResolver) { EnsureArg.IsNotNull(provider, nameof(provider)); EnsureArg.IsNotNull(systemConformanceProvider, nameof(systemConformanceProvider)); EnsureArg.IsNotNull(parser, nameof(parser)); EnsureArg.IsNotNull(urlResolver, nameof(urlResolver)); _provider = provider; _systemConformanceProvider = systemConformanceProvider; _parser = parser; _urlResolver = urlResolver; }
public ValidateContentTypeFilterAttributeTests() { _statement = new CapabilityStatement { Format = new List <string> { "json" }, }; _conformanceProvider = Substitute.For <IConformanceProvider>(); _conformanceProvider.GetCapabilityStatementAsync().Returns(_statement.ToTypedElement().ToResourceElement()); }
public GetCapabilitiesHandler(IConformanceProvider provider) { EnsureArg.IsNotNull(provider, nameof(provider)); _provider = provider; }
public ValidateCapabilityPreProcessor(IConformanceProvider conformanceProvider) { EnsureArg.IsNotNull(conformanceProvider, nameof(conformanceProvider)); _conformanceProvider = conformanceProvider; }
public ConformanceProviderExtensionTests() { _conformanceProvider = Substitute.For <ConformanceProviderBase>(); }