public async Task GivenASPStatusManager_WhenInitializing_ThenSearchParameterIsUpdatedFromRegistry()
        {
            await _manager.EnsureInitialized();

            var list = _searchParameterDefinitionManager.GetSearchParameters("Account").ToList();

            Assert.True(list[0].IsSearchable);
            Assert.True(list[0].IsSupported);
            Assert.False(list[0].IsPartiallySupported);

            Assert.True(list[1].IsSearchable);
            Assert.True(list[1].IsSupported);
            Assert.True(list[1].IsPartiallySupported);

            Assert.False(list[2].IsSearchable);
            Assert.False(list[2].IsSupported);
            Assert.False(list[2].IsPartiallySupported);

            Assert.False(list[3].IsSearchable);
            Assert.True(list[3].IsSupported);
            Assert.False(list[3].IsPartiallySupported);

            Assert.False(list[4].IsSearchable);
            Assert.True(list[4].IsSupported);
            Assert.False(list[4].IsPartiallySupported);
        }
        public async Task GivenSupportedParams_WhenGettingSupported_ThenSupportedParamsReturned()
        {
            await _manager.EnsureInitialized();

            var supportedDefinitionManager = new SupportedSearchParameterDefinitionManager(_searchParameterDefinitionManager);
            var paramList = supportedDefinitionManager.GetSupportedButNotSearchableParams();

            Assert.Single(paramList);
            Assert.Collection(paramList, p =>
            {
                Assert.True(p.IsSupported);
                Assert.False(p.IsSearchable);
            });
        }
        public static async Task <SearchParameterDefinitionManager> CreateSearchParameterDefinitionManagerAsync(IModelInfoProvider modelInfoProvider)
        {
            var definitionManager = new SearchParameterDefinitionManager(modelInfoProvider);
            await definitionManager.StartAsync(CancellationToken.None);

            var statusRegistry = new FilebasedSearchParameterStatusDataStore(
                definitionManager,
                modelInfoProvider);
            var statusManager = new SearchParameterStatusManager(
                statusRegistry,
                definitionManager,
                new SearchParameterSupportResolver(definitionManager, await GetFhirNodeToSearchValueTypeConverterManagerAsync()),
                Substitute.For <IMediator>());
            await statusManager.EnsureInitialized();

            return(definitionManager);
        }
示例#4
0
        public static SearchParameterDefinitionManager CreateSearchParameterDefinitionManager()
        {
            var manager = new SearchParameterDefinitionManager(ModelInfoProvider.Instance);

            manager.Start();

            var statusRegistry = new FilebasedSearchParameterRegistry(
                manager,
                ModelInfoProvider.Instance);
            var statusManager = new SearchParameterStatusManager(
                statusRegistry,
                manager,
                new SearchParameterSupportResolver(manager, Manager),
                Substitute.For <IMediator>());

            statusManager.EnsureInitialized().GetAwaiter().GetResult();

            return(manager);
        }
示例#5
0
        public static SearchParameterDefinitionManager CreateSearchParameterDefinitionManager()
        {
            var manager = new SearchParameterDefinitionManager(new FhirJsonParser(), ModelInfoProvider.Instance);

            manager.Start();

            Type managerType    = typeof(SearchParameterDefinitionManager);
            var  statusRegistry = new FilebasedSearchParameterRegistry(
                manager,
                managerType.Assembly,
                $"{managerType.Namespace}.unsupported-search-parameters.json");
            var statusManager = new SearchParameterStatusManager(
                statusRegistry,
                manager,
                new SearchParameterSupportResolver(manager, Manager),
                Substitute.For <IMediator>());

            statusManager.EnsureInitialized().GetAwaiter().GetResult();

            return(manager);
        }
示例#6
0
        public static SearchParameterDefinitionManager CreateSearchParameterDefinitionManager(IModelInfoProvider modelInfoProvider)
        {
            if (Manager == null)
            {
                throw new InvalidOperationException($"{nameof(Manager)} was not instantiated.");
            }

            var definitionManager = new SearchParameterDefinitionManager(modelInfoProvider);

            definitionManager.Start();

            var statusRegistry = new FilebasedSearchParameterRegistry(
                definitionManager,
                modelInfoProvider);
            var statusManager = new SearchParameterStatusManager(
                statusRegistry,
                definitionManager,
                new SearchParameterSupportResolver(definitionManager, Manager),
                Substitute.For <IMediator>());

            statusManager.EnsureInitialized().GetAwaiter().GetResult();

            return(definitionManager);
        }