package me.atam.atam4j.configuration;
import org.apache.commons.lang3.text.StrLookup;
import org.hamcrest.CoreMatchers;
import org.junit.Test;
import static org.junit.Assert.*;
public class ConfigLoaderTest {
private static final String CONFIG_FILE = "config-loader-test.yml";
@Test
public void givenAValidYAMLConfigFile_whenGetConfigInvoked_thenValidPOJOReturned() {
ConfigLoader<DummyConfiguration> dummyConfigurationConfigLoader = new ConfigLoader<>(
DummyConfiguration.class,
CONFIG_FILE
);
assertThat(dummyConfigurationConfigLoader.getTestConfig().getSomeDummyAttribute(), CoreMatchers.is("someValue"));
}
@Test
public void givenAValidYAMLConfigFileContainingEnvVar_whenGetConfigInvoked_thenValidPOJOReturned() {
ConfigLoader<DummyConfiguration> dummyConfigurationConfigLoader = new ConfigLoader<>(
DummyConfiguration.class,
CONFIG_FILE,
varFound
);
assertThat(dummyConfigurationConfigLoader.getTestConfig().getSomeDummyEnvAttribute(), CoreMatchers.is("envValue"));
}
@Test
public void givenAValidYAMLConfigFileContainingEnvVarThatCannotBeFound_whenGetConfigInvoked_thenValidPOJOReturnedWithDefault() {
ConfigLoader<DummyConfiguration> dummyConfigurationConfigLoader = new ConfigLoader<>(
DummyConfiguration.class,
CONFIG_FILE,
varNotFound
);
assertThat(dummyConfigurationConfigLoader.getTestConfig().getSomeDummyEnvAttribute(), CoreMatchers.is("defaultValue"));
}
private final StrLookup<Object> varFound = new StrLookup<Object>() {
@Override
public String lookup(String key) {
return "envValue";
}
};
private final StrLookup<Object> varNotFound = new StrLookup<Object>() {
@Override
public String lookup(String key) {
return null;
}
};
}