conf.put(new PropertySimple("foo:expr", 123));
conf.put(new PropertySimple("foo2:expr", "${foo:42}"));
conf.put(new PropertySimple("bar", 456));
CompositeOperation cop = delegate.updateGenerateOperationFromProperties(conf, new Address());
assert cop != null;
assert cop.numberOfSteps() == 3;
Map<String, Object> additionalProperties = cop.step(0).getAdditionalProperties();
assert additionalProperties.get("name").equals("foo");
assert additionalProperties.get("value").equals("123");
additionalProperties = cop.step(1).getAdditionalProperties();
assert additionalProperties.get("name").equals("foo2");
assert additionalProperties.get("value") != null;
assert additionalProperties.get("value") instanceof Map;
Map<String, Object> map = (Map<String, Object>) additionalProperties.get("value");
assert map.containsKey("EXPRESSION_VALUE");
assert map.get("EXPRESSION_VALUE").equals("${foo:42}");
additionalProperties = cop.step(2).getAdditionalProperties();
assert additionalProperties.get("name").equals("bar");
assert additionalProperties.get("value").equals(456);
}