package com.softwaremill.common.conf;
import com.softwaremill.common.conf.encoding.MasterPasswordStore;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
/**
* If this test fails with java.security.InvalidKeyException: Illegal key size
* Take a look at comment on com.softwaremill.common.conf.encoding.TextCoder
*
* @author Adam Warski (adam at warski dot org)
*/
public class ConfigurationTest {
@BeforeMethod
public void init() {
MasterPasswordStore.setMasterPassword("top secret");
}
@Test
public void testTest1FromClasspath() {
Map<String, String> props = Configuration.get("test1");
assertThat(props.size()).isEqualTo(3);
assertThat(props.get("a")).isEqualTo("b");
assertThat(props.get("c")).isEqualTo("d");
}
@Test(expectedExceptions = RuntimeException.class)
public void testTest3FromClasspath() {
Configuration.get("test3");
}
@Test
public void shouldGetEncodedValue() {
assertThat(Configuration.get("test1").get("x")).isEqualTo("y1&");
}
@Test
public void shouldGetDefaultValue() {
Config<String, String> config = Configuration.get("test1");
String value = config.get("nonexistingkey", "default value");
assertThat(value).isEqualTo("default value");
}
@Test
public void shouldGetDefaultIntValue() {
Config<String, String> config = Configuration.get("test1");
int value = config.getAsInt("nonexistingkey", 2);
assertThat(value).isEqualTo(2);
}
@Test
public void shouldGetDefaultDoubleValue() {
Config<String, String> config = Configuration.get("test1");
double value = config.getAsDouble("nonexistingkey", 5.5);
assertThat(value).isEqualTo(5.5);
}
@Test
public void shouldGetDefaultBooleanValue() {
Config<String, String> config = Configuration.get("test1");
boolean value = config.getAsBoolean("nonexistingkey", false);
assertThat(value).isEqualTo(false);
}
@Test
public void shouldGetDefaultLongValue() {
Config<String, String> config = Configuration.get("test1");
long value = config.getAsLong("nonexistingkey", 0x7fffffffffffL);
assertThat(value).isEqualTo(0x7fffffffffffL);
}
@Test
public void shouldReturnNullOnNonExistingKey() {
Map<String, String> props = Configuration.get("test1");
assertThat(props.get("nonexistingkey")).isNull();
}
@Test
public void shouldReturnSystemPopertyOnNonExistingKey() {
Map<String, String> props = Configuration.get("test2", true);
System.setProperty("nonexistingkey", "existingvalue");
assertThat(props.get("nonexistingkey")).isEqualTo("existingvalue");
}
}