package io.cattle.platform.archaius.sources;
import static org.junit.Assert.*;
import java.util.Properties;
import org.apache.commons.configuration.MapConfiguration;
import org.junit.Test;
import com.netflix.config.ConcurrentCompositeConfiguration;
import com.netflix.config.ConfigurationBackedDynamicPropertySupportImpl;
public class NamedPropertiesConfigurationTest {
@Test
public void test() {
Properties props = new Properties();
props.setProperty("a", "${b} ${d}");
props.setProperty("b", "4 5 6 ${c}");
props.setProperty("c", "1 2 3");
props.setProperty("d", "7 8 9");
MapConfiguration config = new MapConfiguration(props);
assertEquals("4 5 6 1 2 3 7 8 9", config.getString("a"));
}
@Test
public void testList() {
Properties props = new Properties();
props.setProperty("a", "${b.1},${d}");
props.setProperty("b.1", "4,5,6,${c}");
props.setProperty("c", "1,2,3");
props.setProperty("d", "7,8,9");
MapConfiguration mapConfig = new MapConfiguration(props);
mapConfig.setDelimiterParsingDisabled(true);
ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();
config.addConfiguration(mapConfig);
config.addConfiguration(new MapConfiguration(new Properties()));
assertEquals("4,5,6,1,2,3,7,8,9", config.getString("a"));
ConfigurationBackedDynamicPropertySupportImpl impl = new ConfigurationBackedDynamicPropertySupportImpl(config);
assertEquals("4,5,6,1,2,3,7,8,9", impl.getString("a"));
}
}