1212import tests .configurations .BaseProfileTest ;
1313
1414import java .util .*;
15+ import java .util .function .BooleanSupplier ;
1516import java .util .function .Consumer ;
1617
1718import static org .testng .Assert .*;
1819
1920public class SettingsFileTests extends BaseProfileTest {
2021 private static final String TIMEOUT_POLLING_INTERVAL_PATH = "/timeouts/timeoutPollingInterval" ;
2122 private static final String NULLVALUE_PATH = "/nullValue" ;
23+ private static final String ABSENTVALUE_PATH = "/absentvalue" ;
2224 private static final String TIMEOUT_POLLING_INTERVAL_KEY = "timeouts.timeoutPollingInterval" ;
2325 private static final String LANGUAGE_ENV_KEY = "logger.language" ;
2426 private static final String ARGUMENTS_ENV_KEY = "arguments.start" ;
27+ private static final String BOOLEANVALUE_ENV_KEY = "booleanValue" ;
2528 private static final String PROFILE = "jsontest" ;
2629 private static final String FILE_NAME = String .format ("settings.%s.json" , PROFILE );
2730 private ISettingsFile jsonSettingsFile ;
@@ -36,6 +39,24 @@ public void before() {
3639 jsonSettingsFile = CustomAqualityServices .getServiceProvider ().getInstance (ISettingsFile .class );
3740 }
3841
42+ @ Test
43+ public void testShouldBePossibleToOverrideBooleanValueViaEnvironmentVariable () {
44+ BooleanSupplier getCurrentValue = () -> (Boolean ) jsonSettingsFile .getValue ("/" .concat (BOOLEANVALUE_ENV_KEY ));
45+ boolean oldValue = getCurrentValue .getAsBoolean ();
46+ boolean targetValue = !oldValue ;
47+ System .setProperty (BOOLEANVALUE_ENV_KEY , String .valueOf (targetValue ));
48+ assertEquals (getCurrentValue .getAsBoolean (), targetValue , "value passed via env var is not used by SettingsFile" );
49+ }
50+
51+ @ Test
52+ public void testShouldBePossibleToSetValueWhichIsAbsentInJsonFile () {
53+ Assert .assertFalse (jsonSettingsFile .isValuePresent (ABSENTVALUE_PATH ), "value should be absent by default" );
54+ String targetValue = String .valueOf (true );
55+ System .setProperty (ABSENTVALUE_PATH .substring (1 ), targetValue );
56+ Assert .assertTrue (jsonSettingsFile .isValuePresent (ABSENTVALUE_PATH ), "value should be present after set" );
57+ assertEquals (jsonSettingsFile .getValue (ABSENTVALUE_PATH ), targetValue , "value passed via env var is not used by SettingsFile" );
58+ }
59+
3960 @ Test
4061 public void testShouldBePossibleToGetDefaultContent () {
4162 System .clearProperty (PROFILE_KEY );
0 commit comments