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); }
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); }
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); }
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); }
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); }
protected PropertyTreeReader LoadContent(string fileName) { if (fileName.EndsWith(".xml", StringComparison.Ordinal)) { return(PropertyTreeReader.CreateXml(GetContentPath(fileName))); } else { throw new NotImplementedException(); } }
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); }
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); }
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); }
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)); }
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")); }
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); }