public void Check_Named_Parameters()
        {
            dynamic model = new ElasticObject();
            var c1 = model.@class(new { name = "Class1" });
            c1.property(new { name = "Property1", type = "string" });
            c1.property(new { name = "Property2", type = "string" });
            var c2 = model.@class(new { name = "Class2" });
            c2.property(new { name = "Property1", type = "string" });
            c2.property(new { name = "Property2", type = "string" });

            Assert.AreEqual(model["class"].Count, 2);
            Assert.AreEqual(model["class"][0]["property"].Count, 2);
        }
        public void Check_Nested_Objects_Traversing()
        {
            dynamic model = new ElasticObject();
            var c1 = model.@class();
            c1.name = "Class1";
            var p = c1.property();
            p.name = "Property1";
            p.type = "string";
            p = c1.property();
            p.name = "Property1";
            p.type = "string";

            var c2 = model.@class();
            p = c2.property();
            c2.name = "Class2";
            p.name = "Property1";
            p.type = "string";
            p = c2.property();
            p.name = "Property1";
            p.type = "string";

            Assert.AreEqual(model["class"].Count,2);
            Assert.AreEqual(model["class"][0]["property"].Count,2);
        }