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"]); }
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"]); }
/// <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); }
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); }
/// <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)); }