public void IListBind()
        {
            string data = @"
				cust.years = 2006
				cust.years = 2007
				cust.years = 2008
				cust.years = 2009
			"            ;

            NameValueCollection args = TestUtils.ParseNameValueString(data);

            object instance = binder.BindObject(typeof(Customer2), "cust", builder.BuildSourceNode(args));

            Assert.IsNotNull(instance);
            var cust = instance as Customer2;

            Assert.IsNotNull(cust);

            Assert.IsNotNull(cust.Years);
            Assert.AreEqual(4, cust.Years.Count);

            Assert.AreEqual(2006, cust.Years[0]);
            Assert.AreEqual(2007, cust.Years[1]);
            Assert.AreEqual(2008, cust.Years[2]);
            Assert.AreEqual(2009, cust.Years[3]);
        }
示例#2
0
        public void ValidateInheritedNestedNonEmpty()
        {
            var args = new NameValueCollection
            {
                { "customer.Email", "*****@*****.**" },
                { "customer.ConfirmEmail", "*****@*****.**" },
                { "customer.Address.Street", string.Empty }
            };

            object instance = binder.BindObject(typeof(Customer), "customer", builder.BuildSourceNode(args));

            Assert.IsNotNull(instance);
            Assert.AreEqual(1, binder.ErrorList.Count);
        }
        public void IndexedContent()
        {
            var args = new NameValueCollection();

            args.Add("customer[0].name", "hammett");
            args.Add("customer[0].age", "26");
            args.Add("customer[0].all", "yada yada yada");
            args.Add("customer[10].name", "frasier");
            args.Add("customer[10].age", "50");
            args.Add("customer[10].all", "yada");

            var builder = new TreeBuilder();

            CompositeNode root = builder.BuildSourceNode(args);

            var node = (IndexedNode)root.GetChildNode("customer");

            Assert.IsNotNull(node);
            Assert.AreEqual(2, node.ChildrenCount);

            var cnode = (CompositeNode)node.GetChildNode("0");

            Assert.AreEqual("hammett", ((LeafNode)cnode.GetChildNode("name")).Value);
            Assert.AreEqual("26", ((LeafNode)cnode.GetChildNode("age")).Value);
            Assert.AreEqual("yada yada yada", ((LeafNode)cnode.GetChildNode("all")).Value);

            cnode = (CompositeNode)node.GetChildNode("10");

            Assert.AreEqual("frasier", ((LeafNode)cnode.GetChildNode("name")).Value);
            Assert.AreEqual("50", ((LeafNode)cnode.GetChildNode("age")).Value);
            Assert.AreEqual("yada", ((LeafNode)cnode.GetChildNode("all")).Value);
        }
示例#4
0
        public void IndexedFlatEntries()
        {
            var nameValueColl = new NameValueCollection();

            nameValueColl.Add("emails[0]", "*****@*****.**");
            nameValueColl.Add("emails[1]", "*****@*****.**");
            nameValueColl.Add("emails[2]", "*****@*****.**");

            var           builder = new TreeBuilder();
            CompositeNode root    = builder.BuildSourceNode(nameValueColl);

            Assert.IsNotNull(root);
            Assert.AreEqual(1, root.ChildrenCount);

            var indexNode = (IndexedNode)root.GetChildNode("emails");

            Assert.IsNotNull(indexNode);
            Assert.AreEqual(3, indexNode.ChildrenCount);

            Node[] entries = indexNode.ChildNodes;
            Assert.IsNotNull(entries);
            Assert.AreEqual(3, entries.Length);

            Assert.AreEqual("*****@*****.**", ((LeafNode)entries[0]).Value);
            Assert.AreEqual("*****@*****.**", ((LeafNode)entries[1]).Value);
            Assert.AreEqual("*****@*****.**", ((LeafNode)entries[2]).Value);
        }
		public void EntriesStartingWithDotShouldBeConsideredSimple()
		{
			var nameValueColl = new NameValueCollection();

			nameValueColl.Add(".name", "hammett");
			nameValueColl.Add(".age", "27");

			var builder = new TreeBuilder();
			CompositeNode root = builder.BuildSourceNode(nameValueColl);

			Assert.IsNotNull(root);
			Assert.AreEqual(2, root.ChildrenCount);

			var entry = (LeafNode) root.GetChildNode(".name");
			Assert.IsNotNull(entry);
			Assert.IsFalse(entry.IsArray);
			Assert.AreEqual(".name", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual("hammett", entry.Value);

			entry = (LeafNode) root.GetChildNode(".age");
			Assert.IsNotNull(entry);
			Assert.IsFalse(entry.IsArray);
			Assert.AreEqual(".age", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual("27", entry.Value);
		}
示例#6
0
        public void CompositeEntries()
        {
            var nameValueColl = new NameValueCollection();

            nameValueColl.Add("customer.name", "hammett");
            nameValueColl.Add("customer.age", "27");
            nameValueColl.Add("customer.age", "28");

            var           builder = new TreeBuilder();
            CompositeNode root    = builder.BuildSourceNode(nameValueColl);

            Assert.IsNotNull(root);
            Assert.AreEqual(1, root.ChildrenCount);

            var node = (CompositeNode)root.GetChildNode("customer");

            Assert.IsNotNull(node);
            Assert.AreEqual("customer", node.Name);
            Assert.AreEqual(NodeType.Composite, node.NodeType);

            var entry = (LeafNode)node.GetChildNode("name");

            Assert.IsNotNull(entry);
            Assert.IsFalse(entry.IsArray);
            Assert.AreEqual("name", entry.Name);
            Assert.AreEqual(NodeType.Leaf, entry.NodeType);
            Assert.AreEqual("hammett", entry.Value);

            entry = (LeafNode)node.GetChildNode("age");
            Assert.IsNotNull(entry);
            Assert.IsTrue(entry.IsArray);
            Assert.AreEqual("age", entry.Name);
            Assert.AreEqual(NodeType.Leaf, entry.NodeType);
            Assert.AreEqual(new[] { "27", "28" }, entry.Value);
        }
示例#7
0
        public void EntriesStartingWithDotShouldBeConsideredSimple()
        {
            var nameValueColl = new NameValueCollection();

            nameValueColl.Add(".name", "hammett");
            nameValueColl.Add(".age", "27");

            var           builder = new TreeBuilder();
            CompositeNode root    = builder.BuildSourceNode(nameValueColl);

            Assert.IsNotNull(root);
            Assert.AreEqual(2, root.ChildrenCount);

            var entry = (LeafNode)root.GetChildNode(".name");

            Assert.IsNotNull(entry);
            Assert.IsFalse(entry.IsArray);
            Assert.AreEqual(".name", entry.Name);
            Assert.AreEqual(NodeType.Leaf, entry.NodeType);
            Assert.AreEqual("hammett", entry.Value);

            entry = (LeafNode)root.GetChildNode(".age");
            Assert.IsNotNull(entry);
            Assert.IsFalse(entry.IsArray);
            Assert.AreEqual(".age", entry.Name);
            Assert.AreEqual(NodeType.Leaf, entry.NodeType);
            Assert.AreEqual("27", entry.Value);
        }
		public void CompositeEntries()
		{
			var nameValueColl = new NameValueCollection();

			nameValueColl.Add("customer.name", "hammett");
			nameValueColl.Add("customer.age", "27");
			nameValueColl.Add("customer.age", "28");

			var builder = new TreeBuilder();
			CompositeNode root = builder.BuildSourceNode(nameValueColl);

			Assert.IsNotNull(root);
			Assert.AreEqual(1, root.ChildrenCount);

			var node = (CompositeNode) root.GetChildNode("customer");
			Assert.IsNotNull(node);
			Assert.AreEqual("customer", node.Name);
			Assert.AreEqual(NodeType.Composite, node.NodeType);

			var entry = (LeafNode) node.GetChildNode("name");
			Assert.IsNotNull(entry);
			Assert.IsFalse(entry.IsArray);
			Assert.AreEqual("name", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual("hammett", entry.Value);

			entry = (LeafNode) node.GetChildNode("age");
			Assert.IsNotNull(entry);
			Assert.IsTrue(entry.IsArray);
			Assert.AreEqual("age", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual(new[] {"27", "28"}, entry.Value);
		}
		public void IndexedContent()
		{
			var args = new NameValueCollection();

			args.Add("customer[0].name", "hammett");
			args.Add("customer[0].age", "26");
			args.Add("customer[0].all", "yada yada yada");
			args.Add("customer[10].name", "frasier");
			args.Add("customer[10].age", "50");
			args.Add("customer[10].all", "yada");

			var builder = new TreeBuilder();

			CompositeNode root = builder.BuildSourceNode(args);

			var node = (IndexedNode) root.GetChildNode("customer");

			Assert.IsNotNull(node);
			Assert.AreEqual(2, node.ChildrenCount);

			var cnode = (CompositeNode) node.GetChildNode("0");

			Assert.AreEqual("hammett", ((LeafNode) cnode.GetChildNode("name")).Value);
			Assert.AreEqual("26", ((LeafNode) cnode.GetChildNode("age")).Value);
			Assert.AreEqual("yada yada yada", ((LeafNode) cnode.GetChildNode("all")).Value);

			cnode = (CompositeNode) node.GetChildNode("10");

			Assert.AreEqual("frasier", ((LeafNode) cnode.GetChildNode("name")).Value);
			Assert.AreEqual("50", ((LeafNode) cnode.GetChildNode("age")).Value);
			Assert.AreEqual("yada", ((LeafNode) cnode.GetChildNode("all")).Value);
		}
        public void TwoLevels()
        {
            var args = new NameValueCollection();

            args.Add("customer.name", "hammett");
            args.Add("customer.age", "26");
            args.Add("customer.location.code", "pt-br");
            args.Add("customer.location.country", "55");

            var builder = new TreeBuilder();

            CompositeNode root = builder.BuildSourceNode(args);

            Assert.IsNotNull(root);

            var node = (CompositeNode)root.GetChildNode("customer");

            Assert.IsNotNull(root);

            var locationNode = (CompositeNode)node.GetChildNode("location");

            Assert.IsNotNull(locationNode);

            Assert.AreEqual("pt-br", ((LeafNode)locationNode.GetChildNode("code")).Value);
            Assert.AreEqual("55", ((LeafNode)locationNode.GetChildNode("country")).Value);
        }
示例#11
0
		public void SimpleEntries()
		{
			NameValueCollection nameValueColl = new NameValueCollection();
			
			nameValueColl.Add("name", "hammett");
			nameValueColl.Add("age", "27");
			nameValueColl.Add("age", "28");
			
			TreeBuilder builder = new TreeBuilder();
			CompositeNode root = builder.BuildSourceNode(nameValueColl);
			
			Assert.IsNotNull(root);
			Assert.AreEqual(2, root.ChildrenCount);
			
			LeafNode entry = (LeafNode) root.GetChildNode("name");
			Assert.IsNotNull(entry);
			Assert.IsFalse(entry.IsArray);
			Assert.AreEqual("name", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual("hammett", entry.Value);
			
			entry = (LeafNode) root.GetChildNode("age");
			Assert.IsNotNull(entry);
			Assert.IsTrue(entry.IsArray);
			Assert.AreEqual("age", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual(new String[] { "27", "28" }, entry.Value);
		}
示例#12
0
        public static Config.Config ReadConfig()
        {
            var config  = new Config.Config();
            var builder = new TreeBuilder();
            var tree    = builder.BuildSourceNode(ConfigurationManager.AppSettings);
            var binder  = new DataBinder();

            binder.BindObjectInstance(config, "", tree);
            return(config);
        }
示例#13
0
        public void RepeatedNamesForNodes()
        {
            var nameValueColl = new NameValueCollection();

            nameValueColl.Add("profile.Process", "test");
            nameValueColl.Add("profile.Process.Id", "1");

            var           builder = new TreeBuilder();
            CompositeNode root    = builder.BuildSourceNode(nameValueColl);
        }
        public void Bind_from_app_settings()
        {
            var builder  = new TreeBuilder();
            var tree     = builder.BuildSourceNode(ConfigurationManager.AppSettings);
            var binder   = new DataBinder();
            var settings = new TestSettings();

            binder.BindObjectInstance(settings, tree);
            Assert.That(settings.IntValue, Is.EqualTo(100));
            Assert.That(binder.ErrorList.Count, Is.EqualTo(0));
        }
		public void NoValidEntries()
		{
			NameValueCollection args = new NameValueCollection();

			args.Add("customername", "x");
			args.Add("customerage", "x");
			args.Add("customerall", "x");

			TreeBuilder builder = new TreeBuilder();

			CompositeNode root = builder.BuildSourceNode(args);
			Assert.IsNull(root.GetChildNode("customer"));
		}
示例#16
0
        public void SimpleEntries()
        {
            var nameValueColl = new NameValueCollection();

            nameValueColl.Add("name", "hammett");
            nameValueColl.Add("age", "27");
            nameValueColl.Add("age", "28");

            CompositeNode root = builder.BuildSourceNode(nameValueColl);

            Assert.AreEqual("hammett", binder.BindParameter(typeof(String), "name", root));
            Assert.AreEqual(new[] { 27, 28 }, binder.BindParameter(typeof(int[]), "age", root));
        }
        public void NoValidEntries()
        {
            var args = new NameValueCollection();

            args.Add("customername", "x");
            args.Add("customerage", "x");
            args.Add("customerall", "x");

            var builder = new TreeBuilder();

            CompositeNode root = builder.BuildSourceNode(args);

            Assert.IsNull(root.GetChildNode("customer"));
        }
示例#18
0
        public void IndexedEntries()
        {
            var nameValueColl = new NameValueCollection();

            nameValueColl.Add("customer[0].name", "hammett");
            nameValueColl.Add("customer[0].age", "27");
            nameValueColl.Add("customer[0].age", "28");
            nameValueColl.Add("customer[1].name", "hamilton");
            nameValueColl.Add("customer[1].age", "28");
            nameValueColl.Add("customer[1].age", "29");

            var           builder = new TreeBuilder();
            CompositeNode root    = builder.BuildSourceNode(nameValueColl);

            Assert.IsNotNull(root);
            Assert.AreEqual(1, root.ChildrenCount);

            var indexNode = (IndexedNode)root.GetChildNode("customer");

            Assert.IsNotNull(indexNode);
            Assert.AreEqual(2, indexNode.ChildrenCount);

            var node = (CompositeNode)indexNode.GetChildNode("0");

            Assert.IsNotNull(node);
            Assert.AreEqual(2, node.ChildrenCount);

            var entry = (LeafNode)node.GetChildNode("name");

            Assert.IsNotNull(entry);
            Assert.IsFalse(entry.IsArray);
            Assert.AreEqual("name", entry.Name);
            Assert.AreEqual(NodeType.Leaf, entry.NodeType);
            Assert.AreEqual("hammett", entry.Value);

            node = (CompositeNode)indexNode.GetChildNode("1");
            Assert.IsNotNull(node);
            Assert.AreEqual(2, node.ChildrenCount);

            entry = (LeafNode)node.GetChildNode("name");
            Assert.IsNotNull(entry);
            Assert.IsFalse(entry.IsArray);
            Assert.AreEqual("name", entry.Name);
            Assert.AreEqual(NodeType.Leaf, entry.NodeType);
            Assert.AreEqual("hamilton", entry.Value);
        }
        public void BindObjectInstanceForUser(User instance, string prefix, string jsonSource)
        {
            var treeRoot = new CompositeNode("root");

            if (jsonSource != null)
            {
                var builder    = new TreeBuilder();
                var collection = GetCollectionFromJson(jsonSource, "User");
                treeRoot = builder.BuildSourceNode(collection);
            }
            else
            {
                treeRoot = Request.ObtainParamsNode(ParamStore.Params);
            }
            Binder.BindObjectInstance(instance, prefix, treeRoot);
            boundInstances[instance] = Binder.ErrorList;
            PopulateValidatorErrorSummary(instance, Binder.GetValidationSummary(instance));
        }
		public void OneLevelNode()
		{
			NameValueCollection args = new NameValueCollection();

			args.Add("customer.name", "hammett");
			args.Add("customer.age", "26");
			args.Add("customer.all", "yada yada yada");

			TreeBuilder builder = new TreeBuilder();

			CompositeNode root = builder.BuildSourceNode(args);
			
			CompositeNode node = (CompositeNode) root.GetChildNode("customer");
			
			Assert.IsNotNull(node);

			Assert.AreEqual("hammett", ((LeafNode)node.GetChildNode("name")).Value);
			Assert.AreEqual("26", ((LeafNode)node.GetChildNode("age")).Value);
			Assert.AreEqual("yada yada yada", ((LeafNode)node.GetChildNode("all")).Value);
		}
        public void OneLevelNode()
        {
            var args = new NameValueCollection();

            args.Add("customer.name", "hammett");
            args.Add("customer.age", "26");
            args.Add("customer.all", "yada yada yada");

            var builder = new TreeBuilder();

            CompositeNode root = builder.BuildSourceNode(args);

            var node = (CompositeNode)root.GetChildNode("customer");

            Assert.IsNotNull(node);

            Assert.AreEqual("hammett", ((LeafNode)node.GetChildNode("name")).Value);
            Assert.AreEqual("26", ((LeafNode)node.GetChildNode("age")).Value);
            Assert.AreEqual("yada yada yada", ((LeafNode)node.GetChildNode("all")).Value);
        }
示例#22
0
 public static void ReadDbConfig(Config.Config config)
 {
     if (SessionFactory == null)
     {
         return;
     }
     using (var session = SessionFactory.OpenSession()) {
         var collection = new NameValueCollection();
         var rows       = session.CreateSQLQuery("select `key`, `value` from Customers.AppConfig")
                          .List <object[]>();
         foreach (var row in rows)
         {
             collection.Add(row[0].ToString(), row[1].ToString());
         }
         var builder = new TreeBuilder();
         var tree    = builder.BuildSourceNode(collection);
         var binder  = new DataBinder();
         binder.BindObjectInstance(config, "", tree);
     }
 }
		public void TwoLevels()
		{
			NameValueCollection args = new NameValueCollection();

			args.Add("customer.name", "hammett");
			args.Add("customer.age", "26");
			args.Add("customer.location.code", "pt-br");
			args.Add("customer.location.country", "55");

			TreeBuilder builder = new TreeBuilder();

			CompositeNode root = builder.BuildSourceNode(args);
			Assert.IsNotNull(root);
			
			CompositeNode node = (CompositeNode) root.GetChildNode("customer");
			Assert.IsNotNull(root);

			CompositeNode locationNode = (CompositeNode) node.GetChildNode("location");
			Assert.IsNotNull(locationNode);

			Assert.AreEqual("pt-br", ((LeafNode)locationNode.GetChildNode("code")).Value);
			Assert.AreEqual("55", ((LeafNode)locationNode.GetChildNode("country")).Value);
		}
		public void IndexedFlatEntries()
		{
			var nameValueColl = new NameValueCollection();

			nameValueColl.Add("emails[0]", "*****@*****.**");
			nameValueColl.Add("emails[1]", "*****@*****.**");
			nameValueColl.Add("emails[2]", "*****@*****.**");

			var builder = new TreeBuilder();
			CompositeNode root = builder.BuildSourceNode(nameValueColl);

			Assert.IsNotNull(root);
			Assert.AreEqual(1, root.ChildrenCount);

			var indexNode = (IndexedNode) root.GetChildNode("emails");
			Assert.IsNotNull(indexNode);
			Assert.AreEqual(3, indexNode.ChildrenCount);

			Node[] entries = indexNode.ChildNodes;
			Assert.IsNotNull(entries);
			Assert.AreEqual(3, entries.Length);

			Assert.AreEqual("*****@*****.**", ((LeafNode) entries[0]).Value);
			Assert.AreEqual("*****@*****.**", ((LeafNode) entries[1]).Value);
			Assert.AreEqual("*****@*****.**", ((LeafNode) entries[2]).Value);
		}
示例#25
0
        public void DateTimeBind()
        {
            var args = new NameValueCollection();

            args.Add("person.DOBday", 1.ToString());
            args.Add("person.DOBmonth", 12.ToString());
            args.Add("person.DOByear", 2005.ToString());

            object instance = binder.BindObject(typeof(Person), "person", builder.BuildSourceNode(args));

            Assert.IsNotNull(instance);
            var p = (Person)instance;

            Assert.AreEqual(new DateTime(2005, 12, 1), p.DOB);

            args.Clear();
            args.Add("person.DOBday", 2.ToString());
            args.Add("person.DOBmonth", 1.ToString());
            args.Add("person.DOByear", 2005.ToString());

            instance = binder.BindObject(typeof(Person), "person", builder.BuildSourceNode(args));

            Assert.IsNotNull(instance);
            p = (Person)instance;
            Assert.AreEqual(new DateTime(2005, 1, 2), p.DOB);
        }
示例#26
0
        public void CanHandleProtoTypeSimpleArray()
        {
            string data = @"abc[]=Foo,Bar";
            NameValueCollection args = TestUtils.ParseNameValueString(data);
            object instance          = binder.BindObject(typeof(string[]), "abc", builder.BuildSourceNode(args));

            Assert.IsNotNull(instance);
            var sc = instance as string[];

            Assert.IsNotNull(sc);
            Assert.AreEqual(2, sc.Length);
            Assert.AreEqual("Foo", sc[0]);
            Assert.AreEqual("Bar", sc[1]);
        }
		public void RepeatedNamesForNodes()
		{
			var nameValueColl = new NameValueCollection();

			nameValueColl.Add("profile.Process", "test");
			nameValueColl.Add("profile.Process.Id", "1");

			var builder = new TreeBuilder();
			CompositeNode root = builder.BuildSourceNode(nameValueColl);
		}
		public void IndexedEntries()
		{
			var nameValueColl = new NameValueCollection();

			nameValueColl.Add("customer[0].name", "hammett");
			nameValueColl.Add("customer[0].age", "27");
			nameValueColl.Add("customer[0].age", "28");
			nameValueColl.Add("customer[1].name", "hamilton");
			nameValueColl.Add("customer[1].age", "28");
			nameValueColl.Add("customer[1].age", "29");

			var builder = new TreeBuilder();
			CompositeNode root = builder.BuildSourceNode(nameValueColl);

			Assert.IsNotNull(root);
			Assert.AreEqual(1, root.ChildrenCount);

			var indexNode = (IndexedNode) root.GetChildNode("customer");
			Assert.IsNotNull(indexNode);
			Assert.AreEqual(2, indexNode.ChildrenCount);

			var node = (CompositeNode) indexNode.GetChildNode("0");
			Assert.IsNotNull(node);
			Assert.AreEqual(2, node.ChildrenCount);

			var entry = (LeafNode) node.GetChildNode("name");
			Assert.IsNotNull(entry);
			Assert.IsFalse(entry.IsArray);
			Assert.AreEqual("name", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual("hammett", entry.Value);

			node = (CompositeNode) indexNode.GetChildNode("1");
			Assert.IsNotNull(node);
			Assert.AreEqual(2, node.ChildrenCount);

			entry = (LeafNode) node.GetChildNode("name");
			Assert.IsNotNull(entry);
			Assert.IsFalse(entry.IsArray);
			Assert.AreEqual("name", entry.Name);
			Assert.AreEqual(NodeType.Leaf, entry.NodeType);
			Assert.AreEqual("hamilton", entry.Value);
		}