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);
            }
                );
        }
Example #2
0
 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;
                     }
                );
        }