Exemplo n.º 1
0
        public void TestSetProperties()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            var values = new Dictionary <string, object> {
                //{ "", null },
                { "value1", "AAA" },
                { "value2", "BBB" },
                { "value3.1.value312", "CCC" },
                { "value3.3", "DDD" },
                { "value4.1", "EEE" }
            };

            RecursiveObjectWriter.SetProperties(obj, values);

            var resultValues = RecursiveObjectReader.GetProperties(obj);

            Assert.Equal(9, resultValues.Count);
            Assert.Equal("AAA", resultValues["value1"]);
            Assert.Equal("BBB", resultValues["value2"]);
            Assert.False(resultValues.ContainsKey("value2.value21"));
            Assert.Equal(444, (int)(long)resultValues["value3.0"]);
            Assert.Equal(555, (int)(long)resultValues["value3.1.value311"]);
            Assert.Equal("CCC", resultValues["value3.1.value312"]);
            Assert.Null(resultValues["value3.2"]);
            Assert.Equal("DDD", resultValues["value3.3"]);
            Assert.Null(resultValues["value4.0"]);
            Assert.Equal("EEE", resultValues["value4.1"]);
        }
Exemplo n.º 2
0
        public void TestSetProperty()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            //RecursiveObjectWriter.SetProperty(obj, "", null);
            RecursiveObjectWriter.SetProperty(obj, "value1", "AAA");
            RecursiveObjectWriter.SetProperty(obj, "value2", "BBB");
            RecursiveObjectWriter.SetProperty(obj, "value3.1.value312", "CCC");
            RecursiveObjectWriter.SetProperty(obj, "value3.3", "DDD");
            RecursiveObjectWriter.SetProperty(obj, "value4.1", "EEE");

            var values = RecursiveObjectReader.GetProperties(obj);

            Assert.Equal(9, values.Count);
            Assert.Equal("AAA", values["value1"]);
            Assert.Equal("BBB", values["value2"]);
            Assert.False(values.ContainsKey("value2.value21"));
            Assert.Equal(444, (int)(long)values["value3.0"]);
            Assert.Equal(555, (int)(long)values["value3.1.value311"]);
            Assert.Equal("CCC", values["value3.1.value312"]);
            Assert.Null(values["value3.2"]);
            Assert.Equal("DDD", values["value3.3"]);
            Assert.Null(values["value4.0"]);
            Assert.Equal("EEE", values["value4.1"]);
        }
        public void TestSetProperties()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            var values = Parameters.FromTuples(
                //"", null,
                "value1", "AAA",
                "value2", "BBB",
                "value3.1.value312", "CCC",
                "value3.3", "DDD",
                "value4.1", "EEE"
                );

            RecursiveObjectWriter.SetProperties(obj, values);

            var resultValues = RecursiveObjectReader.GetProperties(obj);

            Assert.Equal(8, resultValues.Count);
            Assert.Equal("AAA", resultValues["value1"]);
            Assert.Equal("BBB", resultValues["value2"]);
            Assert.False(resultValues.ContainsKey("value2.value21"));
            Assert.Equal(444, (int)(long)resultValues["value3.0"]);
            Assert.Equal(555, (int)(long)resultValues["value3.1.value311"]);
            Assert.Equal("CCC", resultValues["value3.1.value312"]);
            Assert.Null(resultValues["value3.2"]);
            Assert.Equal("DDD", resultValues["value3.3"]);
            Assert.Equal("EEE", resultValues["value4.1"]);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Creates a new ConfigParams object filled with key-value pairs from specified object.
        /// </summary>
        /// <param name="value">an object with key-value pairs used to initialize a new ConfigParams.</param>
        /// <returns>a new ConfigParams object.</returns>
        /// See <see cref="RecursiveObjectReader.GetProperties(object)"/>
        public new static ConfigParams FromValue(object value)
        {
            var map    = RecursiveObjectReader.GetProperties(value);
            var result = new ConfigParams();

            result.Append(map);
            return(result);
        }
Exemplo n.º 5
0
 public override object Get(string path)
 {
     if (string.IsNullOrEmpty(path))
     {
         return((object)null);
     }
     if (path.IndexOf(".", StringComparison.Ordinal) > 0)
     {
         return(RecursiveObjectReader.GetProperty((object)this, path));
     }
     return(base.Get(path));
 }
        public void TestGetProperties()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            var values = RecursiveObjectReader.GetProperties(obj);

            Assert.Equal(5, values.Count);
            Assert.Equal(123, (int)(long)values["value1"]);
            Assert.Equal(111, (int)(long)values["value2.value21"]);
            Assert.Equal(222, (int)(long)values["value2.value22"]);
            Assert.Equal(444, (int)(long)values["value3.0"]);
            Assert.Equal(555, (int)(long)values["value3.1.value311"]);
        }
        public void TestGetPropertyNames()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            var names = RecursiveObjectReader.GetPropertyNames(obj);

            Assert.Equal(5, names.Count);
            Assert.True(names.Contains("value1"));
            Assert.True(names.Contains("value2.value21"));
            Assert.True(names.Contains("value2.value22"));
            Assert.True(names.Contains("value3.0"));
            Assert.True(names.Contains("value3.1.value311"));
        }
        public void TestGetProperty()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            var value = RecursiveObjectReader.GetProperty(obj, "");

            Assert.Null(value);

            value = (int)(long)RecursiveObjectReader.GetProperty(obj, "value1");
            Assert.Equal(123, value);

            value = RecursiveObjectReader.GetProperty(obj, "value2");
            Assert.NotNull(value);

            value = (int)(long)RecursiveObjectReader.GetProperty(obj, "value2.value21");
            Assert.Equal(111, value);

            value = RecursiveObjectReader.GetProperty(obj, "value2.value31");
            Assert.Null(value);

            value = RecursiveObjectReader.GetProperty(obj, "value2.value21.value211");
            Assert.Null(value);

            value = RecursiveObjectReader.GetProperty(obj, "valueA.valueB.valueC");
            Assert.Null(value);

            value = RecursiveObjectReader.GetProperty(obj, "value3");
            Assert.NotNull(value);

            value = (int)(long)RecursiveObjectReader.GetProperty(obj, "value3.0");
            Assert.Equal(444, value);

            value = RecursiveObjectReader.GetProperty(obj, "value3.0.value311");
            Assert.Null(value);

            value = RecursiveObjectReader.GetProperty(obj, "value3.1");
            Assert.NotNull(value);

            value = (int)(long)RecursiveObjectReader.GetProperty(obj, "value3.1.value311");
            Assert.Equal(555, value);

            value = RecursiveObjectReader.GetProperty(obj, "value3.2");
            Assert.Null(value);
        }
        public void TestHasProperty()
        {
            var obj = JsonConverter.ToMap(
                "{ \"value1\": 123, \"value2\": { \"value21\": 111, \"value22\": 222 }, \"value3\": [ 444, { \"value311\": 555 } ] }"
                );

            var has = RecursiveObjectReader.HasProperty(obj, "");

            Assert.False(has);

            has = RecursiveObjectReader.HasProperty(obj, "value1");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value2");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value2.value21");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value2.value31");
            Assert.False(has);

            has = RecursiveObjectReader.HasProperty(obj, "value2.value21.value211");
            Assert.False(has);

            has = RecursiveObjectReader.HasProperty(obj, "valueA.valueB.valueC");
            Assert.False(has);

            has = RecursiveObjectReader.HasProperty(obj, "value3");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value3.0");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value3.0.value311");
            Assert.False(has);

            has = RecursiveObjectReader.HasProperty(obj, "value3.1");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value3.1.value311");
            Assert.True(has);

            has = RecursiveObjectReader.HasProperty(obj, "value3.2");
            Assert.False(has);
        }
Exemplo n.º 10
0
 /// <summary>
 /// Checks if this map contains an element with specified key.
 ///
 /// The key can be defined using dot notation and allows to recursively access
 /// elements of elements.
 /// </summary>
 /// <param name="key">a key to be checked</param>
 /// <returns>true if this map contains the key or false otherwise.</returns>
 public new bool ContainsKey(string key)
 {
     return(RecursiveObjectReader.HasProperty(this, key));
 }