package io.lumify.core.config;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@RunWith(JUnit4.class)
public class ConfigurationTest {
private static Configuration configuration;
@BeforeClass
public static void setUp() {
Map<String, String> map = new HashMap<String, String>();
map.put("rabbitmq.addr.0.host", "10.0.1.101");
map.put("rabbitmq.addr.2.host", "10.0.1.103");
map.put("rabbitmq.addr.1.host", "10.0.1.102");
map.put("foo", "A");
map.put("bar", "B");
map.put("bar.baz", "C");
ConfigurationLoader configurationLoader = new HashMapConfigurationLoader(map);
configuration = configurationLoader.createConfiguration();
}
@Test
public void testGetSubset() {
Map<String, String> subset = configuration.getSubset("rabbitmq.addr");
assertEquals(3, subset.size());
assertTrue(subset.keySet().contains("0.host"));
assertTrue(subset.keySet().contains("1.host"));
assertTrue(subset.keySet().contains("2.host"));
assertEquals("10.0.1.101", subset.get("0.host"));
assertEquals("10.0.1.102", subset.get("1.host"));
assertEquals("10.0.1.103", subset.get("2.host"));
}
@Test
public void testGetKeysWithPrefix() {
Set<String> addrKeys = (Set<String>) configuration.getKeys("rabbitmq.addr.");
assertEquals(3, addrKeys.size());
assertTrue(addrKeys.contains("rabbitmq.addr.0.host"));
assertTrue(addrKeys.contains("rabbitmq.addr.1.host"));
assertTrue(addrKeys.contains("rabbitmq.addr.2.host"));
Set<String> barKeys = (Set<String>) configuration.getKeys("bar");
assertEquals(2, barKeys.size());
assertTrue(barKeys.contains("bar"));
assertTrue(barKeys.contains("bar.baz"));
Set<String> barDotKeys = (Set<String>) configuration.getKeys("bar.");
assertEquals(1, barDotKeys.size());
assertTrue(barDotKeys.contains("bar.baz"));
}
@Test
public void testGet() {
String hit = configuration.get("foo", null);
assertEquals("A", hit);
String miss = configuration.get("no.such.key", null);
assertEquals(null, miss);
}
}