public SearchOptionsFactoryTests() { var searchParameterDefinitionManager = Substitute.For <ISearchParameterDefinitionManager>(); _resourceTypeSearchParameterInfo = new SearchParameter { Name = SearchParameterNames.ResourceType, Code = SearchParameterNames.ResourceType, Type = SearchParamType.String }.ToInfo(); _lastUpdatedSearchParameterInfo = new SearchParameter { Name = SearchParameterNames.LastUpdated, Code = SearchParameterNames.LastUpdated, Type = SearchParamType.String }.ToInfo(); searchParameterDefinitionManager.GetSearchParameter(Arg.Any <string>(), Arg.Any <string>()).Throws(ci => new SearchParameterNotSupportedException(ci.ArgAt <string>(0), ci.ArgAt <string>(1))); searchParameterDefinitionManager.GetSearchParameter(Arg.Any <string>(), SearchParameterNames.ResourceType).Returns(_resourceTypeSearchParameterInfo); searchParameterDefinitionManager.GetSearchParameter(Arg.Any <string>(), SearchParameterNames.LastUpdated).Returns(_lastUpdatedSearchParameterInfo); _coreFeatures = new CoreFeatureConfiguration(); _defaultFhirRequestContext = new DefaultFhirRequestContext(); _sortingValidator = Substitute.For <ISortingValidator>(); _factory = new SearchOptionsFactory( _expressionParser, () => searchParameterDefinitionManager, new OptionsWrapper <CoreFeatureConfiguration>(_coreFeatures), _defaultFhirRequestContext.SetupAccessor(), _sortingValidator, NullLogger <SearchOptionsFactory> .Instance); }
public SqlServerSearchService( ISearchOptionsFactory searchOptionsFactory, IFhirDataStore fhirDataStore, SqlServerFhirModel model, SqlRootExpressionRewriter sqlRootExpressionRewriter, ChainFlatteningRewriter chainFlatteningRewriter, SortRewriter sortRewriter, SqlConnectionWrapperFactory sqlConnectionWrapperFactory, SchemaInformation schemaInformation, ISortingValidator sortingValidator, IFhirRequestContextAccessor requestContextAccessor, ILogger <SqlServerSearchService> logger) : base(searchOptionsFactory, fhirDataStore) { EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter)); EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter)); EnsureArg.IsNotNull(sqlConnectionWrapperFactory, nameof(sqlConnectionWrapperFactory)); EnsureArg.IsNotNull(schemaInformation, nameof(schemaInformation)); EnsureArg.IsNotNull(sortingValidator, nameof(sortingValidator)); EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor)); EnsureArg.IsNotNull(logger, nameof(logger)); _model = model; _sqlRootExpressionRewriter = sqlRootExpressionRewriter; _sortRewriter = sortRewriter; _chainFlatteningRewriter = chainFlatteningRewriter; _sqlConnectionWrapperFactory = sqlConnectionWrapperFactory; _logger = logger; _schemaInformation = schemaInformation; _sortingValidator = sortingValidator; _requestContextAccessor = requestContextAccessor; }
public SearchOptionsFactory( IExpressionParser expressionParser, ISearchParameterDefinitionManager.SearchableSearchParameterDefinitionManagerResolver searchParameterDefinitionManagerResolver, IOptions <CoreFeatureConfiguration> featureConfiguration, RequestContextAccessor <IFhirRequestContext> contextAccessor, ISortingValidator sortingValidator, ILogger <SearchOptionsFactory> logger) { EnsureArg.IsNotNull(expressionParser, nameof(expressionParser)); EnsureArg.IsNotNull(searchParameterDefinitionManagerResolver, nameof(searchParameterDefinitionManagerResolver)); EnsureArg.IsNotNull(featureConfiguration?.Value, nameof(featureConfiguration)); EnsureArg.IsNotNull(contextAccessor, nameof(contextAccessor)); EnsureArg.IsNotNull(sortingValidator, nameof(sortingValidator)); EnsureArg.IsNotNull(logger, nameof(logger)); _expressionParser = expressionParser; _contextAccessor = contextAccessor; _sortingValidator = sortingValidator; _searchParameterDefinitionManager = searchParameterDefinitionManagerResolver(); _logger = logger; _featureConfiguration = featureConfiguration.Value; _resourceTypeSearchParameter = _searchParameterDefinitionManager.GetSearchParameter(ResourceType.Resource.ToString(), SearchParameterNames.ResourceType); }