in DarabonbaUnitTests/ModelTest.cs [78:193]
public void TestToObject()
{
Dictionary<string, object> dic = new Dictionary<string, object>();
List<Dictionary<string, object>> dicItems = new List<Dictionary<string, object>>();
List<string> testListStr = new List<string> { "str","testStr"};
dic.Add("requestId", "requestID");
dic.Add("next_marker", "next");
dic.Add("testNoAttr", "noAttr");
Dictionary<string, object> dicSub = new Dictionary<string, object>();
dicSub.Add("requestId", "sub");
dicSub.Add("testInt", 100);
Dictionary<string, object> dicSubNull = null;
Dictionary<string, object> dicSubRe = new Dictionary<string, object>();
dicSubRe.Add("requestId", "subRe");
dicSubRe.Add("testInt", 500);
dicItems.Add(dicSub);
dicItems.Add(dicSubRe);
dicItems.Add(dicSubNull);
dic.Add("items", dicItems);
dic.Add("testListStr", testListStr);
Dictionary<string, object> dicSubModel = new Dictionary<string, object>();
dicSubModel.Add("requestId", "subModel");
dic.Add("subModel", dicSubModel);
Dictionary<string, object> dicDict = new Dictionary<string, object>();
dicDict.Add("test", 1);
dicDict.Add("testListStr", testListStr);
dicDict.Add("testDict", dicSubModel);
dic.Add("dict", dicDict);
dic.Add("testInt32", "-32");
dic.Add("testLong", -64L);
dic.Add("testFloat", 11.11);
dic.Add("testDouble", 12.12);
dic.Add("testBool", "false");
dic.Add("testShort", -16);
dic.Add("testUShort", 16);
dic.Add("testUInt", 32);
dic.Add("testULong", 64);
dic.Add("testNull", null);
Dictionary<string, object> nullValueDic = new Dictionary<string, object>();
nullValueDic.Add("testNullValueDic", new Dictionary<string, object>());
dic.Add("Content", nullValueDic);
TestRegModel model = Model.ToObject<TestRegModel>(dic);
var testNullValueDic = model.Content["testNullValueDic"] as Dictionary<string, object>;
Assert.True(testNullValueDic.Count==0);
Assert.NotNull(model);
Assert.Equal("requestID", model.RequestId);
Assert.Equal("next", model.NextMarker);
Assert.Equal("noAttr", model.testNoAttr);
Assert.Equal("sub", model.Items[0].RequestId);
Assert.Equal(testListStr, model.dict["testListStr"]);
Assert.Equal(dicSubModel, model.dict["testDict"]);
Assert.Equal(100, model.Items[0].testInt);
Assert.NotNull(model.Items[1]);
Assert.NotEqual(model.Items[0].RequestId, model.Items[1].RequestId);
Assert.Null(model.Items[2]);
Assert.Equal("str", model.testListStr[0]);
Assert.NotNull(model.subModel);
Assert.NotNull(model.dict);
Assert.Null(model.testNull);
Dictionary<string, string> dicString = null;
Assert.Null(Model.ToObject<TestDicStringModel>(dicString));
dicString = new Dictionary<string, string>();
dicString.Add("requestId", "test");
dicString.Add("count", "1");
TestDicStringModel stringModel = Model.ToObject<TestDicStringModel>(dicString);
Assert.NotNull(stringModel);
Assert.Equal("test", stringModel.RequestId);
Dictionary<string, object> dicConvert = new Dictionary<string, object>();
dicConvert.Add("requestId", dicSub);
dicConvert.Add("count", "1");
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.NotNull(stringModel);
Assert.Equal("{\"requestId\":\"sub\",\"testInt\":100}", stringModel.RequestId);
Assert.Equal(1, stringModel.Count);
dicConvert.Remove("requestId");
dicConvert.Add("requestId", dicItems);
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.Equal("[{\"requestId\":\"sub\",\"testInt\":100},{\"requestId\":\"subRe\",\"testInt\":500},null]", stringModel.RequestId);
dicConvert.Remove("requestId");
string[] array = new string[] { "a", "b" };
dicConvert.Add("requestId", array);
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.Equal("[\"a\",\"b\"]", stringModel.RequestId);
dicConvert.Remove("requestId");
dicConvert.Add("requestId", 1.1);
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.Equal("1.1", stringModel.RequestId);
dicConvert.Remove("requestId");
dicConvert.Add("requestId", 11111111111111111111L);
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.Equal("11111111111111111111", stringModel.RequestId);
dicConvert.Remove("requestId");
dicConvert.Add("requestId", null);
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.Null(stringModel.RequestId);
dicConvert.Remove("requestId");
dicConvert.Add("requestId", true);
stringModel = Model.ToObject<TestDicStringModel>(dicConvert);
Assert.Equal("True", stringModel.RequestId);
}