private void BuildAndVerify(SearchParameterDefinitionBuilder builder, string expectedIssue)
        {
            InvalidDefinitionException ex = Assert.Throws <InvalidDefinitionException>(() => builder.Build());

            Assert.Contains(ex.Issues, issue =>
                            issue.Severity == IssueSeverity.Fatal.ToString() &&
                            issue.Code == IssueType.Invalid.ToString() &&
                            issue.Diagnostics.StartsWith(expectedIssue));
        }
Esempio n. 2
0
        public void GivenAValidSearchParameterDefinitionFile_WhenBuilt_ThenAllResourceTypesShouldBeIncluded()
        {
            var bundle = SearchParameterDefinitionBuilder.ReadEmbeddedSearchParameters(
                _validEntriesFile,
                ModelInfoProvider.Instance,
                $"{typeof(Definitions).Namespace}.DefinitionFiles",
                typeof(EmbeddedResourceManager).Assembly);

            SearchParameterDefinitionBuilder.Build(bundle.Entries.Select(e => e.Resource).ToList(), _uriDictionary, _resourceTypeDictionary, ModelInfoProvider.Instance);

            Assert.Equal(
                ModelInfoProvider.GetResourceTypeNames().Concat(new[] { "Resource", "DomainResource" }).OrderBy(x => x).ToArray(),
                _resourceTypeDictionary.Select(x => x.Key).OrderBy(x => x).ToArray());
        }
Esempio n. 3
0
        private void BuildAndVerify(string filename, string expectedIssue)
        {
            var bundle = SearchParameterDefinitionBuilder.ReadEmbeddedSearchParameters(
                filename,
                ModelInfoProvider.Instance,
                $"{typeof(Definitions).Namespace}.DefinitionFiles",
                typeof(EmbeddedResourceManager).Assembly);

            InvalidDefinitionException ex = Assert.Throws <InvalidDefinitionException>(
                () => SearchParameterDefinitionBuilder.Build(bundle.Entries.Select(e => e.Resource).ToList(), _uriDictionary, _resourceTypeDictionary, ModelInfoProvider.Instance));

            Assert.Contains(ex.Issues, issue =>
                            issue.Severity == IssueSeverity.Fatal.ToString() &&
                            issue.Code == IssueType.Invalid.ToString() &&
                            issue.Diagnostics.StartsWith(expectedIssue));
        }
Esempio n. 4
0
        public void GivenAValidSearchParameterDefinitionFile_WhenBuilt_ThenUriDictionaryShouldContainAllSearchParameters()
        {
            var bundle = SearchParameterDefinitionBuilder.ReadEmbeddedSearchParameters(
                _validEntriesFile,
                ModelInfoProvider.Instance,
                $"{typeof(Definitions).Namespace}.DefinitionFiles",
                typeof(EmbeddedResourceManager).Assembly);

            SearchParameterDefinitionBuilder.Build(bundle.Entries.Select(e => e.Resource).ToList(), _uriDictionary, _resourceTypeDictionary, ModelInfoProvider.Instance);

            Assert.Equal(6, _uriDictionary.Count);

            Bundle staticBundle = Definitions.GetDefinition("SearchParameters");

            Assert.Equal(
                staticBundle.Entry.Select(entry => entry.FullUrl).OrderBy(s => s, StringComparer.OrdinalIgnoreCase),
                _uriDictionary.Values.Select(value => value.Url.ToString()).OrderBy(s => s, StringComparer.OrdinalIgnoreCase));
        }
Esempio n. 5
0
        public void GivenAValidSearchParameterDefinitionFile_WhenBuilt_ThenCorrectListOfSearchParametersIsBuiltForEntriesWithMultipleBase(ResourceType resourceType)
        {
            var bundle = SearchParameterDefinitionBuilder.ReadEmbeddedSearchParameters(
                _validEntriesFile,
                ModelInfoProvider.Instance,
                $"{typeof(Definitions).Namespace}.DefinitionFiles",
                typeof(EmbeddedResourceManager).Assembly);

            SearchParameterDefinitionBuilder.Build(bundle.Entries.Select(e => e.Resource).ToList(), _uriDictionary, _resourceTypeDictionary, ModelInfoProvider.Instance);

            IDictionary <string, SearchParameterInfo> searchParametersDictionary = _resourceTypeDictionary[resourceType.ToString()];

            ValidateSearchParameters(
                searchParametersDictionary,
                ("_type", SearchParamType.Token, "Resource.type().name"),
                ("_id", SearchParamType.Token, "Resource.id"),
                ("identifier", SearchParamType.Token, "MedicationRequest.identifier | MedicationAdministration.identifier | Medication.identifier | MedicationDispense.identifier"));
        }
 public SearchParameterDefinitionBuilderTests()
 {
     _builderWithInvalidEntries     = CreateBuilder("SearchParametersWithInvalidEntries");
     _builderWithInvalidDefinitions = CreateBuilder("SearchParametersWithInvalidDefinitions");
     _builderWithValidEntries       = CreateBuilder("SearchParameters");
 }