props.put("one", "value1");
props.put("two", "value2");
props.put("three", "${one}");
props.put("value1", "value43");
PropertiesInfo propInfo = new PropertiesInfo(props);
String key = "one";
String val = propInfo.get(key, null);
assertEquals("testing key '" + key + "'", "value1", val);
key = "three";
val = propInfo.get(key, null);
assertEquals("testing key '" + key + "'", "value1", val);
key = "four";
val = propInfo.get(key, "default");
assertEquals("testing key '" + key + "'", "default", val);
key = "four";
val = propInfo.get(key, "${one}");
assertEquals("testing key '" + key + "'", "value1", val);
key = "${one}";
val = propInfo.get(key, null);
assertEquals("testing key '" + key + "'", "value43", val);
key = "four";
val = propInfo.get(key, "${five}");
assertEquals("testing key '" + key + "'", "${five}", val);
props.put("test.${one}", "testOne");
props.put("test.${two}", "test_${two}");