Example #1
0
        public void DictionaryPaths()
        {
            var dict = new Dictionary<string, object>();
            dict.SetPath("settings.subSettings.settingA", 23);
            dict.SetPath("settings.subSettings.settingB", 24);

            Assert.IsTrue(dict.ContainsKey("settings"));
            Assert.IsTrue(((IDictionary<string, object>)dict["settings"]).ContainsKey("subSettings"));
            Assert.AreEqual(dict.GetPath<int>("settings.subSettings.settingA"), 23);
            Assert.AreEqual(dict.GetPath<int>("settings.subSettings.settingB"), 24);
            Assert.IsTrue(dict.PathExists("settings.subSettings"));
            Assert.IsTrue(dict.PathExists("settings.subSettings.settingA"));
            Assert.IsFalse(dict.PathExists("missing_in_action"));
        }
Example #2
0
        public void DictionaryReparseType()
        {
            // Create and initialize and object then convert it to a dictionary
            var o = new DaObject() { id = 101, Name = "#101" };
            var oDict = Json.Reparse<IDictionary<string, object>>(o);

            // Store that dictionary at a path inside another dictionary
            var dict = new Dictionary<string, object>();
            dict.SetPath("settings.daObject", oDict);

            // Get it back out, but reparse it back into a strongly typed object
            var o2 = dict.GetPath<DaObject>("settings.daObject");
            Assert.AreEqual(o2.id, o.id);
            Assert.AreEqual(o2.Name, o.Name);
        }
Example #3
0
        public void ObjectAtPath()
        {
            // Create and initialize and object then convert it to a dictionary
            var o = new DaObject() { id = 101, Name = "#101" };
            var oDict = Json.Reparse<IDictionary<string, object>>(o);

            // Store that dictionary at a path inside another dictionary
            var dict = new Dictionary<string, object>();
            dict.SetPath("settings.daObject", oDict);

            // Get it back as an object (and update dict to hold an actual DaObject
            var o2 = dict.GetObjectAtPath<DaObject>("settings.daObject");

            // Modify it
            o2.id = 102;
            o2.Name = "modified";

            // Save the dictionary and make sure we got the change
            var json = Json.Format(dict);
            Assert.Contains(json, "102");
            Assert.Contains(json, "modified");
        }