|
1 | 1 | package dev.openfeature.contrib.providers.flagd; |
2 | 2 |
|
| 3 | +import static dev.openfeature.contrib.providers.flagd.Config.DEADLINE_MS_ENV_VAR_NAME; |
3 | 4 | import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_CACHE; |
| 5 | +import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_DEADLINE; |
4 | 6 | import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_HOST; |
5 | 7 | import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_IN_PROCESS_PORT; |
| 8 | +import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_KEEP_ALIVE; |
6 | 9 | import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_MAX_CACHE_SIZE; |
7 | 10 | import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_RPC_PORT; |
8 | 11 | import static dev.openfeature.contrib.providers.flagd.Config.KEEP_ALIVE_MS_ENV_VAR_NAME; |
9 | 12 | import static dev.openfeature.contrib.providers.flagd.Config.KEEP_ALIVE_MS_ENV_VAR_NAME_OLD; |
| 13 | +import static dev.openfeature.contrib.providers.flagd.Config.MAX_CACHE_SIZE_ENV_VAR_NAME; |
10 | 14 | import static dev.openfeature.contrib.providers.flagd.Config.PORT_ENV_VAR_NAME; |
11 | 15 | import static dev.openfeature.contrib.providers.flagd.Config.RESOLVER_ENV_VAR; |
12 | 16 | import static dev.openfeature.contrib.providers.flagd.Config.RESOLVER_IN_PROCESS; |
13 | 17 | import static dev.openfeature.contrib.providers.flagd.Config.RESOLVER_RPC; |
14 | 18 | import static dev.openfeature.contrib.providers.flagd.Config.SYNC_PORT_ENV_VAR_NAME; |
15 | 19 | import static dev.openfeature.contrib.providers.flagd.Config.TARGET_URI_ENV_VAR_NAME; |
| 20 | +import static dev.openfeature.contrib.providers.flagd.Config.TLS_ENV_VAR_NAME; |
16 | 21 | import static org.assertj.core.api.Assertions.assertThat; |
17 | 22 | import static org.junit.jupiter.api.Assertions.assertEquals; |
18 | 23 | import static org.junit.jupiter.api.Assertions.assertFalse; |
@@ -329,4 +334,48 @@ void testTargetOverrideFromEnv() { |
329 | 334 |
|
330 | 335 | assertThat(flagdOptions.getTargetUri()).isEqualTo("envoy://localhost:1234/foo.service"); |
331 | 336 | } |
| 337 | + |
| 338 | + @Nested |
| 339 | + class InvalidEnvironmentVariables { |
| 340 | + |
| 341 | + @Test |
| 342 | + @SetEnvironmentVariable(key = DEADLINE_MS_ENV_VAR_NAME, value = "not-a-number") |
| 343 | + void invalidIntFallsBackToDefault() { |
| 344 | + FlagdOptions flagdOptions = FlagdOptions.builder().build(); |
| 345 | + |
| 346 | + assertThat(flagdOptions.getDeadline()).isEqualTo(DEFAULT_DEADLINE); |
| 347 | + } |
| 348 | + |
| 349 | + @Test |
| 350 | + @SetEnvironmentVariable(key = MAX_CACHE_SIZE_ENV_VAR_NAME, value = "10.5") |
| 351 | + void invalidIntWithDecimalFallsBackToDefault() { |
| 352 | + FlagdOptions flagdOptions = FlagdOptions.builder().build(); |
| 353 | + |
| 354 | + assertThat(flagdOptions.getMaxCacheSize()).isEqualTo(DEFAULT_MAX_CACHE_SIZE); |
| 355 | + } |
| 356 | + |
| 357 | + @Test |
| 358 | + @SetEnvironmentVariable(key = KEEP_ALIVE_MS_ENV_VAR_NAME, value = "abc") |
| 359 | + void invalidLongFallsBackToDefault() { |
| 360 | + FlagdOptions flagdOptions = FlagdOptions.builder().build(); |
| 361 | + |
| 362 | + assertThat(flagdOptions.getKeepAlive()).isEqualTo(DEFAULT_KEEP_ALIVE); |
| 363 | + } |
| 364 | + |
| 365 | + @Test |
| 366 | + @SetEnvironmentVariable(key = TLS_ENV_VAR_NAME, value = "yes") |
| 367 | + void invalidBooleanFallsBackToDefault() { |
| 368 | + FlagdOptions flagdOptions = FlagdOptions.builder().build(); |
| 369 | + |
| 370 | + assertThat(flagdOptions.isTls()).isFalse(); |
| 371 | + } |
| 372 | + |
| 373 | + @Test |
| 374 | + @SetEnvironmentVariable(key = TLS_ENV_VAR_NAME, value = "TRUE") |
| 375 | + void booleanIsParsedCaseInsensitively() { |
| 376 | + FlagdOptions flagdOptions = FlagdOptions.builder().build(); |
| 377 | + |
| 378 | + assertThat(flagdOptions.isTls()).isTrue(); |
| 379 | + } |
| 380 | + } |
332 | 381 | } |
0 commit comments