public void ListAllUnsupportedTypes() { var unsupported = new UnsupportedSearchParameters(); SearchParameterDefinitionManager manager = SearchParameterFixtureData.CreateSearchParameterDefinitionManager(ModelInfoProvider.Instance); var resourceAndSearchParameters = ModelInfoProvider.Instance .GetResourceTypeNames() .Select(resourceType => (resourceType, parameters: manager.GetSearchParameters(resourceType))); foreach (var searchParameterRow in resourceAndSearchParameters) { foreach (SearchParameterInfo parameterInfo in searchParameterRow.parameters) { if (parameterInfo.Name != "_type") { var converters = GetConvertsForSearchParameters(searchParameterRow.resourceType, parameterInfo); if (converters.All(x => x.hasConverter == false)) { unsupported.Unsupported.Add(parameterInfo.Url); } else if (converters.Any(x => x.hasConverter == false)) { unsupported.PartialSupport.Add(parameterInfo.Url); } } } } // Print the current state to the console _outputHelper.WriteLine(JsonConvert.SerializeObject(unsupported, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented, })); // Check this against the list already in the system: var systemUnsupported = new UnsupportedSearchParameters(); foreach (var searchParameter in resourceAndSearchParameters.SelectMany(x => x.parameters)) { if (!searchParameter.IsSupported) { systemUnsupported.Unsupported.Add(searchParameter.Url); } else if (searchParameter.IsPartiallySupported) { systemUnsupported.PartialSupport.Add(searchParameter.Url); } } // Expect that the static file "unsupported-search-parameters.json" equals the generated list Assert.Equal(systemUnsupported.Unsupported, unsupported.Unsupported); Assert.Equal(systemUnsupported.PartialSupport, unsupported.PartialSupport); }
public async Task InitializeAsync() { _resolver = new SearchParameterSupportResolver( await SearchParameterFixtureData.GetFhirTypedElementToSearchValueConverterManagerAsync()); }
protected override async Task <ITypedElementToSearchValueConverter> GetTypeConverterAsync() { FhirTypedElementToSearchValueConverterManager fhirTypedElementToSearchValueConverterManager = await SearchParameterFixtureData.GetFhirTypedElementToSearchValueConverterManagerAsync(); fhirTypedElementToSearchValueConverterManager.TryGetConverter("Extension", typeof(QuantitySearchValue), out ITypedElementToSearchValueConverter extensionConverter); return(extensionConverter); }
protected async Task <ITypedElementToSearchValueConverterManager> GetTypeConverterAsync() { FhirTypedElementToSearchValueConverterManager fhirTypedElementToSearchValueConverterManager = await SearchParameterFixtureData.GetFhirTypedElementToSearchValueConverterManagerAsync(); return(fhirTypedElementToSearchValueConverterManager); }
private async Task <ITypedElementToSearchValueConverter> GetTypeConverterAsync() { FhirTypedElementToSearchValueConverterManager fhirTypedElementToSearchValueConverterManager = await SearchParameterFixtureData.GetFhirTypedElementToSearchValueConverterManagerAsync(); fhirTypedElementToSearchValueConverterManager.TryGetConverter("Extension", typeof(ReferenceSearchValue), out ITypedElementToSearchValueConverter extensionConverter); return(extensionConverter); }