PropUtils { public static void updateProperties(Map<String, RequiredPropertyWrapper> properties) { for (String key : properties.keySet()) { getUpdateProperty(key, properties, 0); } }  static void updateProperties(Map<String, RequiredPropertyWrapper> properties);  }
@Test public void testUpdateProperties() { Map<String, RequiredPropertyWrapper> properties = getProperties(new String[][] { new String[] { "unmodified", "", "DEFAULT_UNMODIFIED", "" }, new String[] { "computed", "", "DEFAULT_COMPUTED.${unmodified}", "" }, new String[] { "multiple", "", "DEFAULT_MULTIPLE.${computed}-${hasvalue}", "" }, new String[] { "hasvalue", "HASVALUE", "DEFAULT_HASVALUE", "" }, new String[] { "modified", "MODIFIED", "DEFAULT_MODIFIED.${hasvalue}", "true" }, new String[] { "stackoverflow", "", "${stackoverflow}", "" }, new String[] { "empty", "", "", "" }, new String[] { "useempty", "", "${empty}", "" }, new String[] { "null", null, null, null }, new String[] { "usenull", "", "${null}", "" } }); printProperties(properties); PropUtils.updateProperties(properties); printProperties(properties); assertEquals("DEFAULT_MULTIPLE.DEFAULT_COMPUTED.DEFAULT_UNMODIFIED-DEFAULT_HASVALUE", properties.get("multiple").getValue()); assertEquals("MODIFIED", properties.get("modified").getValue()); assertEquals("", properties.get("stackoverflow").getValue()); }