public void FromNodeClonesCorrectly()
        {
            var child1 = SourceNode.Valued("child1", "a value");

            child1.AddAnnotation("The first annotation");

            var root = SourceNode.Node("TestRoot", child1);

            root.ResourceType = "TestR";
            var annotationTypes = new[] { typeof(string) };
            var copiedRoot      = SourceNode.FromNode(root, recursive: false, annotationsToCopy: annotationTypes);

            Assert.False(copiedRoot.Children().Any());
            Assert.Equal(root.Name, copiedRoot.Name);
            Assert.Equal(root.Location, copiedRoot.Location);
            Assert.Equal(root.Text, copiedRoot.Text);
            Assert.Equal(root.ResourceType, copiedRoot.ResourceType);
            Assert.Null((root as IAnnotated).Annotation <string>());

            copiedRoot = SourceNode.FromNode(root, recursive: true, annotationsToCopy: annotationTypes);
            Assert.True(copiedRoot.Children().Any());
            Assert.Null((root as IAnnotated).Annotation <string>());

            var copiedChild = copiedRoot.Children().Single();

            Assert.False(copiedChild.Children().Any());
            Assert.Equal(child1.Name, copiedChild.Name);
            Assert.Equal(child1.Location, copiedChild.Location);
            Assert.Equal(child1.Text, copiedChild.Text);
            Assert.Equal("The first annotation", (copiedChild as IAnnotated).Annotation <string>());
        }
Exemple #2
0
        public void ReadsFromNav()
        {
            var tpXml = File.ReadAllText(@"TestData\fp-test-patient.xml");
            var nav   = getXmlNode(tpXml).ToSourceNode();
            var nodes = SourceNode.FromNode(nav);

            Assert.True(nav.IsEqualTo(nodes).Success);
        }
        public void ReadsFromNav()
        {
            var tpXml   = File.ReadAllText(@"TestData\fp-test-patient.xml");
            var xmlnode = FhirXmlNode.Parse(tpXml);
            var nodes   = SourceNode.FromNode(xmlnode);

            Assert.True(xmlnode.IsEqualTo(nodes).Success);
        }