Skip to content

Commit c612c27

Browse files
authored
fix: debugThreadPool & shouldCheckCRDAndValidateLocalModel should work (#1016)
Fixes #1014
1 parent acd9ec4 commit c612c27

File tree

2 files changed

+83
-2
lines changed
  • operator-framework-core/src
    • main/java/io/javaoperatorsdk/operator/api/config
    • test/java/io/javaoperatorsdk/operator/api/config

2 files changed

+83
-2
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,27 @@ public static boolean isValidateCustomResourcesEnvVarSet() {
6161
}
6262

6363
public static boolean shouldCheckCRDAndValidateLocalModel() {
64-
return Boolean.getBoolean(System.getProperty(CHECK_CRD_ENV_KEY, "true"));
64+
return getBooleanFromSystemPropsOrDefault(CHECK_CRD_ENV_KEY, true);
6565
}
6666

6767
public static boolean debugThreadPool() {
68-
return Boolean.getBoolean(System.getProperty(DEBUG_THREAD_POOL_ENV_KEY, "false"));
68+
return getBooleanFromSystemPropsOrDefault(DEBUG_THREAD_POOL_ENV_KEY, false);
69+
}
70+
71+
static boolean getBooleanFromSystemPropsOrDefault(String propertyName, boolean defaultValue) {
72+
var property = System.getProperty(propertyName);
73+
if (property == null) {
74+
return defaultValue;
75+
} else {
76+
property = property.trim().toLowerCase();
77+
switch (property) {
78+
case "true":
79+
return true;
80+
case "false":
81+
return false;
82+
default:
83+
return defaultValue;
84+
}
85+
}
6986
}
7087
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package io.javaoperatorsdk.operator.api.config;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class UtilsTest {
8+
9+
@Test
10+
void shouldCheckCRDAndValidateLocalModelByDefault() {
11+
assertTrue(Utils.shouldCheckCRDAndValidateLocalModel());
12+
}
13+
14+
@Test
15+
void shouldNotDebugThreadPoolByDefault() {
16+
assertFalse(Utils.debugThreadPool());
17+
}
18+
19+
@Test
20+
void askingForNonexistentPropertyShouldReturnDefault() {
21+
final var key = "foo";
22+
assertNull(System.getProperty(key));
23+
assertFalse(Utils.getBooleanFromSystemPropsOrDefault(key, false));
24+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, true));
25+
}
26+
27+
@Test
28+
void askingForExistingPropertyShouldReturnItIfBoolean() {
29+
final var key = "foo";
30+
try {
31+
System.setProperty(key, "true");
32+
assertNotNull(System.getProperty(key));
33+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, false));
34+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, true));
35+
36+
System.setProperty(key, "TruE");
37+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, false));
38+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, true));
39+
40+
System.setProperty(key, " \tTRUE ");
41+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, false));
42+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, true));
43+
44+
System.setProperty(key, " \nFalSe \t ");
45+
assertFalse(Utils.getBooleanFromSystemPropsOrDefault(key, false));
46+
assertFalse(Utils.getBooleanFromSystemPropsOrDefault(key, true));
47+
} finally {
48+
System.clearProperty(key);
49+
}
50+
}
51+
52+
@Test
53+
void askingForExistingNonBooleanPropertyShouldReturnDefaultValue() {
54+
final var key = "foo";
55+
try {
56+
System.setProperty(key, "bar");
57+
assertNotNull(System.getProperty(key));
58+
assertFalse(Utils.getBooleanFromSystemPropsOrDefault(key, false));
59+
assertTrue(Utils.getBooleanFromSystemPropsOrDefault(key, true));
60+
} finally {
61+
System.clearProperty(key);
62+
}
63+
}
64+
}

0 commit comments

Comments
 (0)