public CosmosDbSearchParameterStatusInitializerTests()
        {
            ISearchParameterStatusDataStore searchParameterStatusDataStore = Substitute.For <ISearchParameterStatusDataStore>();

            _cosmosDocumentQueryFactory = Substitute.For <ICosmosQueryFactory>();

            _initializer = new CosmosDbSearchParameterStatusInitializer(
                () => searchParameterStatusDataStore,
                _cosmosDocumentQueryFactory,
                new CosmosDataStoreConfiguration());

            _testParameterUri = new Uri("/test", UriKind.Relative);
            searchParameterStatusDataStore
            .GetSearchParameterStatuses()
            .Returns(new[]
            {
                new ResourceSearchParameterStatus
                {
                    Uri                  = _testParameterUri,
                    Status               = SearchParameterStatus.Enabled,
                    LastUpdated          = Clock.UtcNow,
                    IsPartiallySupported = false,
                },
            });
        }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CosmosFhirDataStore"/> class.
        /// </summary>
        /// <param name="containerScope">
        /// A function that returns an <see cref="Container"/>.
        /// Note that this is a function so that the lifetime of the instance is not directly controlled by the IoC container.
        /// </param>
        /// <param name="cosmosDataStoreConfiguration">The data store configuration.</param>
        /// <param name="namedCosmosCollectionConfigurationAccessor">The IOptions accessor to get a named version.</param>
        /// <param name="cosmosQueryFactory">The factory used to create the document query.</param>
        /// <param name="retryExceptionPolicyFactory">The retry exception policy factory.</param>
        /// <param name="logger">The logger instance.</param>
        /// <param name="modelInfoProvider">The model provider</param>
        /// <param name="coreFeatures">The core feature configuration</param>
        public CosmosFhirDataStore(
            IScoped <Container> containerScope,
            CosmosDataStoreConfiguration cosmosDataStoreConfiguration,
            IOptionsMonitor <CosmosCollectionConfiguration> namedCosmosCollectionConfigurationAccessor,
            ICosmosQueryFactory cosmosQueryFactory,
            RetryExceptionPolicyFactory retryExceptionPolicyFactory,
            ILogger <CosmosFhirDataStore> logger,
            IModelInfoProvider modelInfoProvider,
            IOptions <CoreFeatureConfiguration> coreFeatures)
        {
            EnsureArg.IsNotNull(containerScope, nameof(containerScope));
            EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration));
            EnsureArg.IsNotNull(namedCosmosCollectionConfigurationAccessor, nameof(namedCosmosCollectionConfigurationAccessor));
            EnsureArg.IsNotNull(cosmosQueryFactory, nameof(cosmosQueryFactory));
            EnsureArg.IsNotNull(retryExceptionPolicyFactory, nameof(retryExceptionPolicyFactory));
            EnsureArg.IsNotNull(logger, nameof(logger));
            EnsureArg.IsNotNull(modelInfoProvider, nameof(modelInfoProvider));
            EnsureArg.IsNotNull(coreFeatures, nameof(coreFeatures));

            _containerScope              = containerScope;
            _cosmosQueryFactory          = cosmosQueryFactory;
            _retryExceptionPolicyFactory = retryExceptionPolicyFactory;
            _logger            = logger;
            _modelInfoProvider = modelInfoProvider;
            _coreFeatures      = coreFeatures.Value;
        }
Exemple #3
0
        public CosmosDbStatusRegistryInitializer(
            FilebasedSearchParameterRegistry.Resolver filebasedRegistry,
            ICosmosQueryFactory queryFactory)
        {
            EnsureArg.IsNotNull(filebasedRegistry, nameof(filebasedRegistry));
            EnsureArg.IsNotNull(queryFactory, nameof(queryFactory));

            _filebasedRegistry = filebasedRegistry.Invoke();
            _queryFactory      = queryFactory;
        }
Exemple #4
0
        public CosmosDbSearchParameterStatusInitializer(
            FilebasedSearchParameterStatusDataStore.Resolver filebasedSearchParameterStatusDataStoreResolver,
            ICosmosQueryFactory queryFactory)
        {
            EnsureArg.IsNotNull(filebasedSearchParameterStatusDataStoreResolver, nameof(filebasedSearchParameterStatusDataStoreResolver));
            EnsureArg.IsNotNull(queryFactory, nameof(queryFactory));

            _filebasedSearchParameterStatusDataStore = filebasedSearchParameterStatusDataStoreResolver.Invoke();
            _queryFactory = queryFactory;
        }
        public CosmosDbSearchParameterStatusDataStore(
            Func <IScoped <Container> > containerScopeFactory,
            CosmosDataStoreConfiguration cosmosDataStoreConfiguration,
            ICosmosQueryFactory queryFactory)
        {
            EnsureArg.IsNotNull(containerScopeFactory, nameof(containerScopeFactory));
            EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration));
            EnsureArg.IsNotNull(queryFactory, nameof(queryFactory));

            _containerScopeFactory = containerScopeFactory;
            _queryFactory          = queryFactory;
        }
Exemple #6
0
 public CosmosFhirDataStoreTests()
 {
     _cosmosQueryFactory = Substitute.For <ICosmosQueryFactory>();
     _dataStore          = new CosmosFhirDataStore(
         Substitute.For <IScoped <Container> >(),
         _cosmosDataStoreConfiguration,
         Substitute.For <IOptionsMonitor <CosmosCollectionConfiguration> >(),
         _cosmosQueryFactory,
         new RetryExceptionPolicyFactory(_cosmosDataStoreConfiguration),
         NullLogger <CosmosFhirDataStore> .Instance,
         Options.Create(new CoreFeatureConfiguration()));
 }
 public CosmosFhirDataStoreTests()
 {
     _cosmosQueryFactory = Substitute.For <ICosmosQueryFactory>();
     _dataStore          = new CosmosFhirDataStore(
         Substitute.For <IScoped <Container> >(),
         _cosmosDataStoreConfiguration,
         Substitute.For <IOptionsMonitor <CosmosCollectionConfiguration> >(),
         _cosmosQueryFactory,
         new RetryExceptionPolicyFactory(_cosmosDataStoreConfiguration, Substitute.For <RequestContextAccessor <IFhirRequestContext> >()),
         NullLogger <CosmosFhirDataStore> .Instance,
         Options.Create(new CoreFeatureConfiguration()),
         new Lazy <ISupportedSearchParameterDefinitionManager>(Substitute.For <ISupportedSearchParameterDefinitionManager>()));
 }
        public CosmosFhirDataStoreTests()
        {
            _container          = Substitute.For <Container>().CreateMockScope();
            _cosmosQueryFactory = Substitute.For <ICosmosQueryFactory>();
            var fhirRequestContext = Substitute.For <IFhirRequestContext>();

            fhirRequestContext.ExecutingBatchOrTransaction.Returns(true);
            var requestContextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();

            requestContextAccessor.RequestContext.Returns(fhirRequestContext);
            _dataStore = new CosmosFhirDataStore(
                _container,
                _cosmosDataStoreConfiguration,
                Substitute.For <IOptionsMonitor <CosmosCollectionConfiguration> >(),
                _cosmosQueryFactory,
                new RetryExceptionPolicyFactory(_cosmosDataStoreConfiguration, requestContextAccessor),
                NullLogger <CosmosFhirDataStore> .Instance,
                Options.Create(new CoreFeatureConfiguration()),
                new Lazy <ISupportedSearchParameterDefinitionManager>(Substitute.For <ISupportedSearchParameterDefinitionManager>()));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CosmosFhirOperationDataStore"/> class.
        /// </summary>
        /// <param name="containerScope">The factory for <see cref="Container"/>.</param>
        /// <param name="cosmosDataStoreConfiguration">The data store configuration.</param>
        /// <param name="namedCosmosCollectionConfigurationAccessor">The IOptions accessor to get a named version.</param>
        /// <param name="retryExceptionPolicyFactory">The retry exception policy factory.</param>
        /// <param name="queryFactory">The Query Factory</param>
        /// <param name="logger">The logger.</param>
        public CosmosFhirOperationDataStore(
            IScoped <Container> containerScope,
            CosmosDataStoreConfiguration cosmosDataStoreConfiguration,
            IOptionsMonitor <CosmosCollectionConfiguration> namedCosmosCollectionConfigurationAccessor,
            RetryExceptionPolicyFactory retryExceptionPolicyFactory,
            ICosmosQueryFactory queryFactory,
            ILogger <CosmosFhirOperationDataStore> logger)
        {
            EnsureArg.IsNotNull(containerScope, nameof(containerScope));
            EnsureArg.IsNotNull(cosmosDataStoreConfiguration, nameof(cosmosDataStoreConfiguration));
            EnsureArg.IsNotNull(namedCosmosCollectionConfigurationAccessor, nameof(namedCosmosCollectionConfigurationAccessor));
            EnsureArg.IsNotNull(retryExceptionPolicyFactory, nameof(retryExceptionPolicyFactory));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _containerScope = containerScope;
            _retryExceptionPolicyFactory = retryExceptionPolicyFactory;
            _queryFactory = queryFactory;
            _logger       = logger;

            CosmosCollectionConfiguration collectionConfiguration = namedCosmosCollectionConfigurationAccessor.Get(Constants.CollectionConfigurationName);

            DatabaseId   = cosmosDataStoreConfiguration.DatabaseId;
            CollectionId = collectionConfiguration.CollectionId;
        }