Esempio n. 1
0
        public void GetSchema_ROW_JSON_ROW()
        {
            var row =
               new MyPerzon
            {
               GDID = new GDID(1, 1, 980),
               Name = "Lenin Grib",
               Age = 100
            };

             store.Insert(row);

             var qry = new Query("CRUD.LoadPerzon", typeof(MyPerzon))
                           {
                             new Query.Param("id", new GDID(1,1,980))
                           };

             var schema = store.GetSchema(qry);

             Assert.IsNotNull(schema);
             Assert.AreEqual(3, schema.FieldCount);

             Assert.AreEqual(0, schema["_id"].Order);
             Assert.AreEqual(1, schema["Name"].Order);
             Assert.AreEqual(2, schema["Age"].Order);

             var row2 = new DynamicRow(schema);//Notice: We are creating dynamic row with schema taken from Mongo

             row2["_id"] = new GDID(10,10,10);
             row2["Name"] = "Kozloff";
             row2["Age"] = "199";

             var json = row2.ToJSON(JSONWritingOptions.PrettyPrintRowsAsMap);
             Console.WriteLine(json);

             var dyn = json.JSONToDynamic();

             Assert.AreEqual("10:10:10", dyn._id);
             Assert.AreEqual("Kozloff", dyn.Name);
             Assert.AreEqual("199", dyn.Age);
        }
Esempio n. 2
0
        public void GetSchema_ROW_JSON_ROW()
        {
            var data = new byte[] { 0x00, 0x79, 0x14 };
             var row =
               new MyPerzon
            {
               GDID = new GDID(1, 1, 980),
               Name = "Lenin Grib",
               Age = 100,
               Data = data
            };

             store.Insert(row);

             var qry = new Query("CRUD.LoadPerzon", typeof(MyPerzon))
                           {
                             new Query.Param("id", new GDID(1,1,980))
                           };

             var schema = store.GetSchema(qry);

             Assert.IsNotNull(schema);
             Assert.AreEqual(4, schema.FieldCount);

             Assert.AreEqual(0, schema["_id"].Order);
             Assert.AreEqual(1, schema["Name"].Order);
             Assert.AreEqual(2, schema["Age"].Order);
             Assert.AreEqual(3, schema["Data"].Order);

             var row2 = new DynamicRow(schema);//Notice: We are creating dynamic row with schema taken from Mongo

             row2["_id"] = new GDID(10,10,10);
             row2["Name"] = "Kozloff";
             row2["Age"] = "199";
             row2["Data"] = data;

             var json = row2.ToJSON(JSONWritingOptions.PrettyPrintRowsAsMap);
             Console.WriteLine(json);

             var dyn = json.JSONToDynamic();

             Assert.AreEqual(4, dyn.Data.Count);
             Assert.AreEqual("10:10:10", dyn._id);
             Assert.AreEqual("Kozloff", dyn.Name);
             Assert.AreEqual("199", dyn.Age);
             //todo: how to check dynamic row with 'Data' name? dyn.Data is the collection of all kvp ((JSONDataMap)dyn.Data)["Data"] is JSONDataArray
             //Assert.AreEqual(data, dyn.Data);
        }