package org.wildfly.swarm.container.config;
import org.junit.Test;
import org.wildfly.swarm.spi.api.config.CompositeKey;
import org.wildfly.swarm.spi.api.config.ConfigKey;
import org.wildfly.swarm.spi.api.config.SimpleKey;
import static org.fest.assertions.Assertions.assertThat;
/**
* @author Bob McWhirter
*/
public class ConfigKeyTest {
@Test
public void testParseWithOnlyDots() {
ConfigKey key = ConfigKey.parse("foo.bar.baz");
assertThat(key.head().name()).isEqualTo("foo");
assertThat(key.subkey(1).head().name()).isEqualTo("bar");
assertThat(key.subkey(2).head().name()).isEqualTo("baz");
assertThat(key.subkey(3).head()).isEqualTo(ConfigKey.EMPTY);
assertThat(key.name()).isEqualTo("foo.bar.baz");
assertThat(key).isInstanceOf(CompositeKey.class);
}
@Test
public void testOneSegmentInsideDelim() {
ConfigKey key = ConfigKey.parse("[foo]");
assertThat(key.head().name()).isEqualTo("foo");
assertThat(key.name()).isEqualTo("foo");
assertThat(key).isInstanceOf(SimpleKey.class);
}
@Test
public void testSeveralSegmentsNoInternalDots() {
ConfigKey key = ConfigKey.parse("[foo].[bar].[baz]");
assertThat(key.head().name()).isEqualTo("foo");
assertThat(key.subkey(1).head().name()).isEqualTo("bar");
assertThat(key.subkey(2).head().name()).isEqualTo("baz");
assertThat(key.subkey(3).head()).isEqualTo(ConfigKey.EMPTY);
assertThat(key.name()).isEqualTo("foo.bar.baz");
}
@Test
public void testSeveralSegmentsWithInternalDots() {
ConfigKey key = ConfigKey.parse("foo.[bar.baz].taco");
assertThat(key.head().name()).isEqualTo("foo");
assertThat(key.subkey(1).head().name()).isEqualTo("bar.baz");
assertThat(key.subkey(2).head().name()).isEqualTo("taco");
assertThat(key.subkey(3).head()).isEqualTo(ConfigKey.EMPTY);
assertThat(key.name()).isEqualTo("foo.[bar.baz].taco");
}
}