コード例 #1
0
ファイル: ReflectionTests.cs プロジェクト: Quahu/Common
        public void TestDictionaryConversion()
        {
            var x = new { Text = "Behold, an anonymous object", Number = 42 };
            var y = new { Text = "Another anonymous object", Number = 69 };
            var z = new TestClass0();
            var w = new TestClass1(42);
            var v = ReflectionUtilities.CreateEmpty <TestClass0>();

            var dx = x.ToDictionary();
            var dy = y.ToDictionary();
            var dz = z.ToDictionary();
            var dw = w.ToDictionary();
            var dv = v.ToDictionary();

            Assert.AreEqual(x.Text, dx["Text"]);
            Assert.AreEqual(y.Text, dy["Text"]);
            Assert.AreNotEqual(x.Text, dy["Text"]);
            Assert.AreEqual(x.Number, dx["Number"]);
            Assert.AreEqual(y.Number, dy["Number"]);
            Assert.AreNotEqual(x.Number, dy["Number"]);
            Assert.AreNotEqual(dx["Text"], dx["Number"]);
            Assert.AreEqual(true, dz["IsInitialized"]);
            Assert.AreEqual(43, dw["Value"]);
            Assert.AreEqual(false, dv["IsInitialized"]);
        }
コード例 #2
0
        public void TryFetch_WithMethodCallLambda_ReturnsValue()
        {
            var obj = new TestClass0();

            int result = obj.TryFetch(o => o.Ints.Single(i => i == Any.Int));

            Assert.That(result, Is.EqualTo(Any.Int));
        }
コード例 #3
0
        public void TryFetch_WithMethodCallWithArgument_ReturnsValue()
        {
            var obj = new TestClass0();

            string result = obj.TryFetch(o => o.ConvertToString(Any.Int));

            Assert.That(result, Is.EqualTo(Any.Int.ToString()));
        }
コード例 #4
0
        public void TryFetch_WithMethodCallWithArgument_ReturnsValue()
        {
            var obj = new TestClass0();

            string result = obj.TryFetch(o => o.ConvertToString(Any.Int));

            Assert.That(result, Is.EqualTo(Any.Int.ToString()));
        }
コード例 #5
0
        public void TryFetch_WithMethodCall_ReturnsValue()
        {
            var obj = new TestClass0 {StringProperty = Any.String};

            string result = obj.TryFetch(o => o.GetString());

            Assert.That(result, Is.EqualTo(Any.String));
        }
コード例 #6
0
        public void TryFetch_WithMethodCallLambda_ReturnsValue()
        {
            var obj = new TestClass0();

            int result = obj.TryFetch(o => o.Ints.Single(i => i == Any.Int));

            Assert.That(result, Is.EqualTo(Any.Int));
        }
コード例 #7
0
        public void TryFetch_WithExtensionMethod_ReturnsValue()
        {
            var obj = new TestClass0();

            var result = obj.TryFetch(o => o.Ints.ToList());

            Assert.That(result.Count(), Is.EqualTo(2));
        }
コード例 #8
0
        public void TryFetch_WithExtensionMethod_ReturnsValue()
        {
            var obj = new TestClass0();

            var result = obj.TryFetch(o => o.Ints.ToList());

            Assert.That(result.Count(), Is.EqualTo(2));
        }
コード例 #9
0
        public void TryFetch_WithMethodCall_ReturnsValue()
        {
            var obj = new TestClass0 {
                StringProperty = Any.String
            };

            string result = obj.TryFetch(o => o.GetString());

            Assert.That(result, Is.EqualTo(Any.String));
        }
コード例 #10
0
        public void TryFetch_WithNullInPath_ReturnsDefaultValue()
        {
            var obj = new TestClass0();

            bool   result0 = obj.TryFetch(o => o.Class1.BoolProperty);
            long   result1 = obj.TryFetch(o => o.Class1.LongProperty);
            string result2 = obj.TryFetch(o => o.Class1.ToString());

            Assert.That(result0, Is.False);
            Assert.That(result1, Is.EqualTo(0));
            Assert.That(result2, Is.Empty);
        }
コード例 #11
0
ファイル: TestStart.cs プロジェクト: WalterHuangZM/LitJson
    static void Main(string[] args)
    {
        JsonMapper.RegisterObjectConvert(new TestConvert());

        TestClass tc = new TestClass();

        tc.id = -1;
        TestClass0 t0 = new TestClass0();

        t0.id = 0;
        TestClass1 t1 = new TestClass1();

        t1.id = 1;
        string json  = JsonMapper.ToJson(tc);
        string json0 = JsonMapper.ToJson(t0);
        string json1 = JsonMapper.ToJson(t1);

        Console.WriteLine(json);
        Console.WriteLine(json0);
        Console.WriteLine(json1);

        TestClass t = JsonMapper.ToObject <TestClass>(json);

        t.Debug();
        t = JsonMapper.ToObject <TestClass>(json0);
        t.Debug();
        t = JsonMapper.ToObject <TestClass>(json1);
        t.Debug();

        TestClass[] arr = new TestClass[3];
        arr[0] = tc;
        arr[1] = t0;
        arr[2] = t1;
        string jsonArr = JsonMapper.ToJson(arr);

        Console.WriteLine(jsonArr);
        TestClass[] tArr = JsonMapper.ToObject <TestClass[]>(jsonArr);
        for (int i = 0; i < tArr.Length; i++)
        {
            tArr[i].Debug();
        }

        bool isRunning = true;

        while (isRunning)
        {
            ConsoleKeyInfo info = Console.ReadKey();
            if (info.Key == ConsoleKey.Escape)
            {
                isRunning = false;
            }
        }
    }
コード例 #12
0
        public void TryFetch_WithStringProperty_ReturnsValueAsString()
        {
            const string expected = Any.String;
            var          obj      = new TestClass0 {
                Class1 = new TestClass1 {
                    StringProperty = expected
                }
            };

            var result = obj.TryFetch(o => o.Class1.StringProperty);

            Assert.That(result, Is.EqualTo(expected));
        }
コード例 #13
0
        public void TryFetch_WithObjectGraphWithMethodCall_ReturnsValue()
        {
            var obj0 = new TestClass0 {
                StringProperty = Any.String
            };
            var obj1 = new TestClass1 {
                Class0 = obj0
            };

            string result = obj1.TryFetch(o => o.Class0.GetString());

            Assert.That(result, Is.EqualTo(Any.String));
        }
コード例 #14
0
        public void TryFetch_WithObjectGraph_ReturnsValueAsString()
        {
            var obj = new TestClass0
            {
                Class1 =
                    new TestClass1
                {
                    Class0 = new TestClass0 {
                        Class1 = new TestClass1 {
                            StringProperty = Any.OtherString
                        }
                    }
                }
            };

            string result = obj.TryFetch(o => o.Class1.Class0.Class1.StringProperty);

            Assert.That(result, Is.EqualTo(Any.OtherString));
        }
コード例 #15
0
        public void TryFetch_WithObjectGraph_ReturnsValueAsString()
        {
            var obj = new TestClass0
                {
                    Class1 =
                        new TestClass1
                            {
                                Class0 = new TestClass0 {Class1 = new TestClass1 {StringProperty = Any.OtherString}}
                            }
                };

            string result = obj.TryFetch(o => o.Class1.Class0.Class1.StringProperty);

            Assert.That(result, Is.EqualTo(Any.OtherString));
        }
コード例 #16
0
        public void TryFetch_WithObjectGraphWithMethodCall_ReturnsValue()
        {
            var obj0 = new TestClass0 {StringProperty = Any.String};
            var obj1 = new TestClass1 {Class0 = obj0};

            string result = obj1.TryFetch(o => o.Class0.GetString());

            Assert.That(result, Is.EqualTo(Any.String));
        }
コード例 #17
0
        public void TryFetch_WithNullInPath_ReturnsDefaultValue()
        {
            var obj = new TestClass0();

            bool result0 = obj.TryFetch(o => o.Class1.BoolProperty);
            long result1 = obj.TryFetch(o => o.Class1.LongProperty);
            string result2 = obj.TryFetch(o => o.Class1.ToString());

            Assert.That(result0, Is.False);
            Assert.That(result1, Is.EqualTo(0));
            Assert.That(result2, Is.Empty);
        }
コード例 #18
0
        public void TryFetch_WithStringProperty_ReturnsValueAsString()
        {
            const string expected = Any.String;
            var obj = new TestClass0 {Class1 = new TestClass1 {StringProperty = expected}};

            var result = obj.TryFetch(o => o.Class1.StringProperty);

            Assert.That(result, Is.EqualTo(expected));
        }