Esempio n. 1
0
        public void Read_should_handle_elided_property_trees()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetXmlReader("omicron-theta-2.xml"));

            // 6 Reads to get to the elision
            Assert.True(reader.Read()); // omicronTheta
            Assert.True(reader.Read()); // alpha
            Assert.True(reader.Read()); // id
            Assert.True(reader.Read()); // d
            Assert.True(reader.Read()); // e
            Assert.True(reader.Read()); // alpha
            Assert.True(reader.Read()); // beta
            Assert.True(reader.Read());

            Assert.Equal("a", reader.Name);
            Assert.Null(reader.Value);
            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);

            Assert.True(reader.Read());
            Assert.Equal("source", reader.Name);
            Assert.Equal("#alpha", reader.Value);
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);

            Assert.True(reader.Read());
            Assert.Equal("a", reader.Name);
            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
        }
Esempio n. 2
0
        public void depth_and_position()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetContentPath("beta.xml"));

            Assert.Equal(ReadState.Initial, reader.ReadState);
            Assert.True(reader.Read());
            Assert.Equal(0, reader.Depth);
            Assert.Equal(0, reader.Position);

            Assert.True(reader.Read());
            Assert.Equal(1, reader.Depth);
            Assert.Equal(0, reader.Position);

            Assert.True(reader.Read());
            Assert.Equal(1, reader.Depth); // d
            Assert.Equal(1, reader.Position);

            Assert.True(reader.Read());
            Assert.Equal(1, reader.Depth); // a
            Assert.Equal(2, reader.Position);

            Assert.True(reader.Read());
            Assert.Equal(2, reader.Depth);
            Assert.Equal(0, reader.Position); // a.a

            // 9 additional reads
            TestUtils.Times(() => reader.Read(), 9);

            Assert.False(reader.Read());
            Assert.Equal(ReadState.EndOfFile, reader.ReadState);
        }
Esempio n. 3
0
        public void read_property_tree_from_root_xml()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetXmlReader("beta.xml"));

            Assert.True(reader.Read());
            PropertyTree tree = reader.ReadPropertyTree();

            AssertBetaFile(tree);
        }
Esempio n. 4
0
        public void read_property_tree_implicitly_moves_initial_xml()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetXmlReader("beta.xml"));

            Assert.Equal(ReadState.Initial, reader.ReadState);
            PropertyTree tree = reader.ReadPropertyTree();

            Assert.Equal("beta", tree.Name);
        }
Esempio n. 5
0
        public void BaseUri_should_equal_absolute_uri_of_local_file_streams()
        {
            PropertyTreeReader pt = PropertyTreeReader.CreateXml(File.OpenRead(GetContentPath("beta-upsilon.xml")));

            pt.Read();

            var baseUri = GetContentUri("beta-upsilon.xml");

            Assert.Equal(baseUri, pt.BaseUri);
        }
Esempio n. 6
0
 protected PropertyTreeReader LoadContent(string fileName)
 {
     if (fileName.EndsWith(".xml", StringComparison.Ordinal))
     {
         return(PropertyTreeReader.CreateXml(GetContentPath(fileName)));
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Esempio n. 7
0
        public void bind_streaming_source()
        {
            PropertyTreeReader pt = PropertyTreeReader.CreateXml(
                StreamContext.FromSource(GetContentUri("beta-8.xml")));

            Assert.True(pt.Read());

            Beta b = pt.Bind(new Beta());

            Assert.NotNull(b.A);
            Assert.Equal(float.NaN, b.A.L);
            Assert.Equal("Carbonfrost F5 Project", b.A.M);
            Assert.Equal(65535, b.A.N);
        }
Esempio n. 8
0
        public void Bind_should_collect_multiple_expression_values_on_lists()
        {
            var doc = @"<delta b='${a} ${b}' />";
            PropertyTreeReader pt = PropertyTreeReader.CreateXml(StreamContext.FromText(doc));

            Assert.True(pt.Read());

            var opts = new PropertyTreeBinderOptions();

            opts.ExpressionContext.Data["a"] = new Beta();
            opts.ExpressionContext.Data["b"] = new Beta();

            var b = pt.Bind <Delta>(opts);

            Assert.Equal(2, b.B.Count);
        }
Esempio n. 9
0
        public void node_types()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetContentPath("beta.xml"));

            Assert.Equal(ReadState.Initial, reader.ReadState);
            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);
            Assert.Equal("beta", reader.Name);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("c", reader.Name);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("d", reader.Name);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);
            Assert.Equal("a", reader.Name);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("a", reader.Name);

            // Additional reads
            TestUtils.Times(() => reader.Read(), 5);

            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
            Assert.Equal("a", reader.Name);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);
            Assert.Equal("b", reader.Name);

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
            Assert.Equal("b", reader.Name);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
            Assert.Equal("beta", reader.Name);
        }
Esempio n. 10
0
        public void ReadPropertyTree_should_retain_prefix_map_in_nodes()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetXmlReader("alpha.xml"));

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            Assert.True(reader.Read());

            // The tree created here should also support ns resolving
            PropertyTree tree     = PropertyTreeReader.CreateXml(GetXmlReader("alpha.xml")).ReadPropertyTree();
            var          nav      = tree.CreateNavigator();
            var          resolver = (IXmlNamespaceResolver)nav;

            nav.MoveToFirstChild();
            Assert.Equal("a", nav.Name);
            Assert.Equal("https://ns.carbonfrost.com/commons/core",
                         resolver.LookupNamespace("shared"));
            Assert.Null(resolver.LookupNamespace(string.Empty));
        }
Esempio n. 11
0
        public void Bind_should_invoke_IApplyProperties_instead_of_addon()
        {
            var doc = @"<t>
                          <s a='${a}' b='6' />
                        </t>";
            PropertyTreeReader pt = PropertyTreeReader.CreateXml(StreamContext.FromText(doc));

            Assert.True(pt.Read());

            var item = pt.Bind(new T());

            Assert.NotNull(item.ApplyInvokedWith);
            Assert.Same(item, item.ApplyInvokedWith[0]);
            Assert.Equal(NamespaceUri.Default + "S", item.ApplyInvokedWith[1]);

            var props = item.ApplyInvokedWith[2] as IProperties;

            Assert.NotNull(props);
            // Assert.IsAssignableFrom<Expression>(props.GetProperty("a"));
            Assert.IsInstanceOf <string>(props.GetProperty("b"));
        }
Esempio n. 12
0
        public void read_full_document()
        {
            PropertyTreeReader reader = PropertyTreeReader.CreateXml(GetContentPath("beta.xml"));

            Assert.Equal(ReadState.Initial, reader.ReadState);
            Assert.True(reader.Read());

            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);
            Assert.Equal("beta", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("c", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("d", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);
            Assert.Equal("a", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("a", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("aa", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("b", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("bb", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("e", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
            Assert.Equal("a", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            // b --
            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.PropertyTree, reader.NodeType);
            Assert.Equal("b", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.Property, reader.NodeType);
            Assert.Equal("a", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
            Assert.Equal("b", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.True(reader.Read());
            Assert.Equal(PropertyNodeType.EndPropertyTree, reader.NodeType);
            Assert.Equal("beta", reader.Name);
            Assert.Equal(string.Empty, reader.Namespace);

            Assert.False(reader.Read());
            Assert.Equal(ReadState.EndOfFile, reader.ReadState);
        }