Ejemplo n.º 1
0
        public void PrimitiveChildMatching()
        {
            var boolean    = _source.FindStructureDefinitionForCoreType(FHIRDefinedType.Boolean);
            var boolDefNav = ElementDefinitionNavigator.ForSnapshot(boolean);

            boolDefNav.MoveToFirstChild();

            var data = SourceNode.Valued("active", "true",
                                         SourceNode.Node("extension",
                                                         SourceNode.Valued("value", "4")),
                                         SourceNode.Node("nonExistant")
                                         ).ToTypedElement(new PocoStructureDefinitionSummaryProvider(), type: "boolean", settings: new TypedElementSettings {
                ErrorMode = TypedElementSettings.TypeErrorMode.Passthrough
            });

            var matches = ChildNameMatcher.Match(boolDefNav, new ScopedNode(data));

            Assert.Single(matches.UnmatchedInstanceElements);
            Assert.Equal(3, matches.Matches.Count());           // id, extension, value
            Assert.Empty(matches.Matches[0].InstanceElements);  // id
            Assert.Single(matches.Matches[1].InstanceElements); // extension
            Assert.Single(matches.Matches[2].InstanceElements); // value

            Assert.Equal("extension", matches.Matches[1].InstanceElements.First().Name);
            Assert.Equal("extension", matches.Matches[1].Definition.PathName);
            Assert.Equal("active", matches.Matches[2].InstanceElements.First().Name);
            Assert.Equal("value", matches.Matches[2].Definition.PathName);
        }
Ejemplo n.º 2
0
        public void PrimitiveChildMatching()
        {
            var boolean    = _source.FindStructureDefinitionForCoreType(FHIRDefinedType.Boolean);
            var boolDefNav = ElementDefinitionNavigator.ForSnapshot(boolean);

            boolDefNav.MoveToFirstChild();

            var data = ElementNode.Valued("active", true, FHIRDefinedType.Boolean.GetLiteral(),
                                          ElementNode.Node("extension",
                                                           ElementNode.Valued("value", 4, "integer")),
                                          ElementNode.Node("nonExistant")
                                          ).ToNavigator();

            var matches = ChildNameMatcher.Match(boolDefNav, new ScopedNavigator(data));

            Assert.Equal(1, matches.UnmatchedInstanceElements.Count);
            Assert.Equal(3, matches.Matches.Count());                     // id, extension, value
            Assert.Equal(0, matches.Matches[0].InstanceElements.Count()); // id
            Assert.Equal(1, matches.Matches[1].InstanceElements.Count()); // extension
            Assert.Equal(1, matches.Matches[2].InstanceElements.Count()); // value

            Assert.Equal("extension", matches.Matches[1].InstanceElements.First().Name);
            Assert.Equal("extension", matches.Matches[1].Definition.PathName);
            Assert.Equal("active", matches.Matches[2].InstanceElements.First().Name);
            Assert.Equal("value", matches.Matches[2].Definition.PathName);
        }
Ejemplo n.º 3
0
        public void NameMatching()
        {
            var data = ElementNode.Valued("active", true, FHIRDefinedType.Boolean.GetLiteral()).ToNavigator();

            Assert.True(ChildNameMatcher.NameMatches("active", data));
            Assert.True(ChildNameMatcher.NameMatches("activeBoolean", data));
            Assert.False(ChildNameMatcher.NameMatches("activeDateTime", data));
            Assert.True(ChildNameMatcher.NameMatches("active[x]", data));
            Assert.False(ChildNameMatcher.NameMatches("activate", data));
        }
Ejemplo n.º 4
0
        public void NameMatching()
        {
            var data = SourceNode.Valued("active", "true")
                       .ToTypedElement(new PocoStructureDefinitionSummaryProvider(), "boolean");

            Assert.True(ChildNameMatcher.NameMatches("active", data));
            Assert.True(ChildNameMatcher.NameMatches("activeBoolean", data));
            Assert.False(ChildNameMatcher.NameMatches("activeDateTime", data));
            Assert.True(ChildNameMatcher.NameMatches("active[x]", data));
            Assert.False(ChildNameMatcher.NameMatches("activate", data));
        }