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); }
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); }