Пример #1
0
        public void Map_GetSet_ByMember()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.A = 7;
            Assert.AreEqual(7, obj.A);
        }
Пример #2
0
        public void Map_GetSet_ByIndexer()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj["A"] = 7;
            Assert.AreEqual(7, obj["A"]);
        }
Пример #3
0
        public void Map_GetSet_DateTimeAddDays()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.StartDate = new DateTime(1980, 12, 05);
            obj.Interval  = 5;
            obj.EndDate   = obj.StartDate.AddDays(obj.Interval);

            Assert.AreEqual(new DateTime(1980, 12, 10), obj.EndDate);
        }
Пример #4
0
        public void Map_GetSet_DoubleAddInt()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.A = 3.4d;
            obj.B = 5;
            obj.C = obj.A + obj.B;

            Assert.AreEqual(8.4d, obj.C);
        }
Пример #5
0
        public void Map_GetSet_IntAdd()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.A = 3;
            obj.B = 5;
            obj.C = obj.A + obj.B;

            Assert.AreEqual(8, obj.C);
        }
Пример #6
0
        public void Array_Autogrow_2()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Array);

            Assert.AreEqual(0, obj.Count);
            Assert.AreEqual(0, obj.Length);

            obj[150] = 100;

            Assert.AreEqual(151, obj.Count);
            Assert.AreEqual(100, obj[150]);
        }
Пример #7
0
        public void Array_Autogrow_1()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Array);

            Aver.AreEqual(0, obj.Count);
            Aver.AreEqual(0, obj.Length);

            obj[0] = 100;
            obj[1] = 120;

            Aver.AreEqual(2, obj.Count);
            Aver.AreEqual(100, obj[0]);
            Aver.AreEqual(120, obj[1]);
        }
Пример #8
0
        public void Map_GetMemberNames()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.A = 3;
            obj.B = 5;
            obj.C = obj.A + obj.B;

            IEnumerable <string> nms = obj.GetDynamicMemberNames();
            var names = nms.ToList();

            Assert.AreEqual(3, names.Count);
            Assert.AreEqual("A", names[0]);
            Assert.AreEqual("B", names[1]);
            Assert.AreEqual("C", names[2]);
        }
Пример #9
0
        public void Array_GetBeyondRange()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Array);

            Assert.AreEqual(0, obj.Count);
            Assert.AreEqual(0, obj.Length);

            obj[0] = 100;
            obj[1] = 120;

            Assert.AreEqual(2, obj.Count);
            Assert.AreEqual(100, obj[0]);
            Assert.AreEqual(120, obj[1]);

            Assert.IsNull(obj[10001]);
        }
Пример #10
0
        public void WithSubDocumentsAndConversionAccessors()
        {
            // http://stackoverflow.com/questions/2954531/lots-of-first-chance-microsoft-csharp-runtimebinderexceptions-thrown-when-dealin
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.type               = "abc";
            obj.startDate          = "5/15/2001 6:00pm";
            obj.target             = new JSONDynamicObject(JSONDynamicObjectKind.Map);
            obj.target.id          = "A678";
            obj.target.image       = "hello";
            obj.target.type        = "good";
            obj.target.description = "Thank You";
            obj.target.Age         = 123;
            obj.target.Salary      = 125000m;


            string s1 = obj.ToJSON();

            var ro1 = s1.JSONToDynamic();

            Assert.AreEqual("abc", ro1.type);
            Assert.AreEqual(new DateTime(2001, 5, 15, 18, 00, 00), ((string)ro1.startDate).AsDateTime());
            Assert.AreEqual("A678", ro1.target.id);
            Assert.AreEqual("hello", ro1.target.image);
            Assert.AreEqual("good", ro1.target.type);
            Assert.AreEqual("Thank You", ro1.target.description);

            Assert.AreEqual(123, ro1.target.Age);

            Assert.AreEqual(125000, ro1.target.Salary);


            string s2 = ((object)obj).ToJSON();

            var ro2 = s2.JSONToDynamic();

            Assert.AreEqual("abc", ro2.type);
            Assert.AreEqual(new DateTime(2001, 5, 15, 18, 00, 00), ((string)ro2.startDate).AsDateTime());
            Assert.AreEqual("A678", ro2.target.id);
            Assert.AreEqual("hello", ro2.target.image);
            Assert.AreEqual("good", ro2.target.type);
            Assert.AreEqual("Thank You", ro2.target.description);
        }
Пример #11
0
        public void WithSubDocumentsAndConversionAccessors()
        {
            dynamic obj = new JSONDynamicObject(JSONDynamicObjectKind.Map);

            obj.type               = "abc";
            obj.startDate          = "5/15/2001 6:00pm";
            obj.target             = new JSONDynamicObject(JSONDynamicObjectKind.Map);
            obj.target.id          = "A678";
            obj.target.image       = "hello";
            obj.target.type        = "good";
            obj.target.description = "Thank You";
            obj.target.Age         = 123;
            obj.target.Salary      = 125000m;


            string s1 = obj.ToJSON();

            var ro1 = s1.JSONToDynamic();

            Assert.AreEqual("abc", ro1.type);
            Assert.AreEqual(new DateTime(2001, 5, 15, 18, 00, 00), ((string)ro1.startDate).AsDateTime());
            Assert.AreEqual("A678", ro1.target.id);
            Assert.AreEqual("hello", ro1.target.image);
            Assert.AreEqual("good", ro1.target.type);
            Assert.AreEqual("Thank You", ro1.target.description);

            Assert.AreEqual(123, ro1.target.Age);

            Assert.AreEqual(125000, ro1.target.Salary);


            string s2 = ((object)obj).ToJSON();

            var ro2 = s2.JSONToDynamic();

            Assert.AreEqual("abc", ro2.type);
            Assert.AreEqual(new DateTime(2001, 5, 15, 18, 00, 00), ((string)ro2.startDate).AsDateTime());
            Assert.AreEqual("A678", ro2.target.id);
            Assert.AreEqual("hello", ro2.target.image);
            Assert.AreEqual("good", ro2.target.type);
            Assert.AreEqual("Thank You", ro2.target.description);
        }