mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-07-24 15:35:34 -04:00
Polish and test BitsquareEnvironment
- Introduce a test-time dependency on spring-test module for access to MockPropertySource and friends. - Add BitsquareEnvironmentTests and test that property source precedence works as expected, i.e. that properties supplied on the command line have highest precedence, overriding those picked up via environment variables, system properties, the bitsquare.properties file or any of the other available property sources.
This commit is contained in:
parent
c8770f96a9
commit
0136ea2884
4 changed files with 70 additions and 44 deletions
|
@ -19,13 +19,43 @@ package io.bitsquare.app;
|
|||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
import org.springframework.core.env.MutablePropertySources;
|
||||
import org.springframework.core.env.PropertySource;
|
||||
import org.springframework.mock.env.MockPropertySource;
|
||||
|
||||
import static io.bitsquare.app.BitsquareEnvironment.*;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.springframework.core.env.PropertySource.named;
|
||||
import static org.springframework.core.env.StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME;
|
||||
import static org.springframework.core.env.StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME;
|
||||
|
||||
public class BitsquareEnvironmentTests {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
assertThat(1, equalTo(1));
|
||||
public void testPropertySourcePrecedence() {
|
||||
PropertySource commandlineProps = new MockPropertySource(BITSQUARE_COMMANDLINE_PROPERTY_SOURCE_NAME)
|
||||
.withProperty("key.x", "x.commandline");
|
||||
|
||||
PropertySource filesystemProps = new MockPropertySource(BITSQUARE_FILESYSTEM_PROPERTY_SOURCE_NAME)
|
||||
.withProperty("key.x", "x.env")
|
||||
.withProperty("key.y", "y.env");
|
||||
|
||||
ConfigurableEnvironment env = new BitsquareEnvironment(commandlineProps) {
|
||||
@Override PropertySource<?> filesystemProperties() { return filesystemProps; }
|
||||
};
|
||||
MutablePropertySources propertySources = env.getPropertySources();
|
||||
|
||||
assertThat(propertySources.precedenceOf(named(BITSQUARE_COMMANDLINE_PROPERTY_SOURCE_NAME)), equalTo(0));
|
||||
assertThat(propertySources.precedenceOf(named(SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME)), equalTo(1));
|
||||
assertThat(propertySources.precedenceOf(named(SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME)), equalTo(2));
|
||||
assertThat(propertySources.precedenceOf(named(BITSQUARE_FILESYSTEM_PROPERTY_SOURCE_NAME)), equalTo(3));
|
||||
assertThat(propertySources.precedenceOf(named(BITSQUARE_CLASSPATH_PROPERTY_SOURCE_NAME)), equalTo(4));
|
||||
assertThat(propertySources.precedenceOf(named(BITSQUARE_DEFAULT_PROPERTY_SOURCE_NAME)), equalTo(5));
|
||||
assertThat(propertySources.size(), equalTo(6));
|
||||
|
||||
assertThat(env.getProperty("key.x"), equalTo("x.commandline")); // commandline value wins due to precedence
|
||||
assertThat(env.getProperty("key.y"), equalTo("y.env")); // env value wins because it's the only one available
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue