public void TestDynaBinding() { var input = (ElementNode.Node("root", ElementNode.Valued("child", "Hello world!", "string"), ElementNode.Valued("child", 4L, "integer"))).ToNavigator(); Assert.Equal("ello", input.Scalar(@"$this.child[0].substring(1,%context.child[1])")); }
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, data); Assert.AreEqual(1, matches.UnmatchedInstanceElements.Count); Assert.AreEqual(3, matches.Matches.Count()); // id, extension, value Assert.AreEqual(0, matches.Matches[0].InstanceElements.Count()); // id Assert.AreEqual(1, matches.Matches[1].InstanceElements.Count()); // extension Assert.AreEqual(1, matches.Matches[2].InstanceElements.Count()); // value Assert.AreEqual("extension", matches.Matches[1].InstanceElements.First().Name); Assert.AreEqual("extension", matches.Matches[1].Definition.PathName); Assert.AreEqual("active", matches.Matches[2].InstanceElements.First().Name); Assert.AreEqual("value", matches.Matches[2].Definition.PathName); }
public void TestEmptyElement() { var boolSd = _source.FindStructureDefinitionForCoreType(FHIRDefinedType.Boolean); var data = ElementNode.Node("active").ToNavigator(); var result = _validator.Validate(data, boolSd); Assert.IsFalse(result.Success); Assert.IsTrue(result.ToString().Contains("must not be empty")); }
public ElementNodeTests() { patient = ElementNode.Node("Patient", "Patient", ElementNode.Valued("active", true, FHIRDefinedType.Boolean.GetLiteral(), ElementNode.Valued("id", "myId1"), ElementNode.Valued("id", "myId2"), ElementNode.Node("extension", ElementNode.Valued("value", 4, "integer")), ElementNode.Node("extension", ElementNode.Valued("value", "world!", "string")))); }
public static IElementNavigator QuerySelect(this IElementNavigator nav, Query query) { var root = ElementNode.Node(query.From); foreach (var field in query.Fields) { var subtree = nav.Select(field.Expression); root.Apply(subtree, field.Name); } return(root.ToNavigator()); }
public void ValidateCardinality() { var boolSd = _source.FindStructureDefinitionForCoreType(FHIRDefinedType.Boolean); var data = ElementNode.Valued("active", true, FHIRDefinedType.Boolean.GetLiteral(), ElementNode.Valued("id", "myId1"), ElementNode.Valued("id", "myId2"), ElementNode.Node("extension", ElementNode.Valued("value", 4, "integer")), ElementNode.Node("extension", ElementNode.Valued("value", "world!", "string"))).ToNavigator(); var report = _validator.Validate(data, boolSd); Assert.AreEqual(3, report.ListErrors().Count()); }
public ElementNodeTests() { var annotatedNode = ElementNode.Valued("id", "myId1"); (annotatedNode as IAnnotatable).AddAnnotation("a string annotation"); patient = ElementNode.Node("Patient", "Patient", ElementNode.Valued("active", true, "boolean", annotatedNode, ElementNode.Valued("id", "myId2"), ElementNode.Node("extension", ElementNode.Valued("value", 4, "integer")), ElementNode.Node("extension", ElementNode.Valued("value", "world!", "string")))); }