public void testUseReferencesSimple() { ObjectWithRefs root = new ObjectWithRefs(); root.subo1 = new PotentiallyHugeSubObject(); root.subo1.stringVal = "123456"; root.subo1.intVal = 4321; root.subo2 = root.subo1; root.subo3 = root.subo2; Object2Json o2j = new Object2Json(); o2j.NodeExpander = new FieldReflectionNodeExpander(); o2j.UseReferences = true; string json = o2j.toJson(root); o2j.UseReferences = false; string jsonWithoutReferenceSupport = o2j.toJson(root); System.Console.WriteLine("testUseReferences1 without references: " + jsonWithoutReferenceSupport); //Object value; JSExcuteUtil.JsonValueSet valueSet = new JSExcuteUtil.JsonValueSet(); valueSet.json = o2j.ObjectResolverFunctionName + "(" + json + ")"; valueSet.varname = "root"; valueSet.expressions2ExpectedValue["subo3.intVal"] = root.subo3.intVal; valueSet.expressions2ExpectedValue["subo3.stringVal"] = root.subo3.stringVal; valueSet.extraFunctions.Add(o2j.getObjectResolverJS()); Dictionary <string, object> values = util.extractValuesFromJson(valueSet, GetType().Name + "." + "testUseReferencesSimple"); valueSet.expressions2ExpectedValue.Select( p => { string expression = p.Key; object expectedValue = valueSet.expressions2ExpectedValue[expression]; object actualValue = values[expression]; Assert.AreEqual(expectedValue, values[expression], "expression=" + expression + " with reference json= " + json); return(expression); } ); }
private static bool CheckObjectWithRefs(ObjectWithRefs v) { return(v.i1.i == -1 && v.i2.i == 1 && v.iNull == null); }
public void testUseReferencesSimple() { ObjectWithRefs root = new ObjectWithRefs(); root.subo1 = new PotentiallyHugeSubObject(); root.subo1.stringVal="123456"; root.subo1.intVal =4321; root.subo2=root.subo1; root.subo3=root.subo2; Object2Json o2j = new Object2Json(); o2j.NodeExpander = new FieldReflectionNodeExpander(); o2j.UseReferences = true; string json = o2j.toJson(root); o2j.UseReferences = false; string jsonWithoutReferenceSupport = o2j.toJson(root); System.Console.WriteLine("testUseReferences1 without references: " + jsonWithoutReferenceSupport); //Object value; JSExcuteUtil.JsonValueSet valueSet = new JSExcuteUtil.JsonValueSet(); valueSet.json = o2j.ObjectResolverFunctionName + "(" + json + ")"; valueSet.varname = "root"; valueSet.expressions2ExpectedValue["subo3.intVal"] = root.subo3.intVal; valueSet.expressions2ExpectedValue["subo3.stringVal"] = root.subo3.stringVal; valueSet.extraFunctions.Add(o2j.getObjectResolverJS()); Dictionary<string, object> values = util.extractValuesFromJson(valueSet, GetType().Name + "." + "testUseReferencesSimple"); valueSet.expressions2ExpectedValue.Select( p => { string expression = p.Key; object expectedValue = valueSet.expressions2ExpectedValue[expression]; object actualValue = values[expression]; Assert.AreEqual(expectedValue, values[expression], "expression=" + expression + " with reference json= " + json); return expression; } ); }