diff --git a/pom.xml b/pom.xml
index 4caf6a8..2de73e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -137,12 +137,6 @@
2.1
test
-
- com.github.stefanbirkner
- system-rules
- 1.17.2
- test
-
org.mockito
mockito-core
diff --git a/src/test/java/de/stklcode/jvault/connector/builder/HTTPVaultConnectorBuilderTest.java b/src/test/java/de/stklcode/jvault/connector/builder/HTTPVaultConnectorBuilderTest.java
index c1b657b..788301e 100644
--- a/src/test/java/de/stklcode/jvault/connector/builder/HTTPVaultConnectorBuilderTest.java
+++ b/src/test/java/de/stklcode/jvault/connector/builder/HTTPVaultConnectorBuilderTest.java
@@ -19,11 +19,9 @@ package de.stklcode.jvault.connector.builder;
import de.stklcode.jvault.connector.HTTPVaultConnector;
import de.stklcode.jvault.connector.exception.TlsException;
import de.stklcode.jvault.connector.exception.VaultConnectorException;
-import org.junit.Rule;
-import org.junit.contrib.java.lang.system.EnvironmentVariables;
+import de.stklcode.jvault.connector.test.EnvironmentMock;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
-import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import java.io.File;
import java.io.IOException;
@@ -40,7 +38,6 @@ import static org.junit.jupiter.api.Assertions.fail;
* @author Stefan Kalscheuer
* @since 0.8.0
*/
-@EnableRuleMigrationSupport
public class HTTPVaultConnectorBuilderTest {
private static final String VAULT_ADDR = "https://localhost:8201";
private static final Integer VAULT_MAX_RETRIES = 13;
@@ -49,9 +46,6 @@ public class HTTPVaultConnectorBuilderTest {
@TempDir
File tempDir;
- @Rule
- public final EnvironmentVariables environment = new EnvironmentVariables();
-
/**
* Test building from environment variables
*/
@@ -112,10 +106,10 @@ public class HTTPVaultConnectorBuilderTest {
}
private void setenv(String vault_addr, String vault_cacert, String vault_max_retries, String vault_token) {
- environment.set("VAULT_ADDR", vault_addr);
- environment.set("VAULT_CACERT", vault_cacert);
- environment.set("VAULT_MAX_RETRIES", vault_max_retries);
- environment.set("VAULT_TOKEN", vault_token);
+ EnvironmentMock.setenv("VAULT_ADDR", vault_addr);
+ EnvironmentMock.setenv("VAULT_CACERT", vault_cacert);
+ EnvironmentMock.setenv("VAULT_MAX_RETRIES", vault_max_retries);
+ EnvironmentMock.setenv("VAULT_TOKEN", vault_token);
}
private Object getRequestHelperPrivate(HTTPVaultConnector connector, String fieldName) throws NoSuchFieldException, IllegalAccessException {
diff --git a/src/test/java/de/stklcode/jvault/connector/factory/HTTPVaultConnectorFactoryTest.java b/src/test/java/de/stklcode/jvault/connector/factory/HTTPVaultConnectorFactoryTest.java
index 8c9b7ca..de4fb95 100644
--- a/src/test/java/de/stklcode/jvault/connector/factory/HTTPVaultConnectorFactoryTest.java
+++ b/src/test/java/de/stklcode/jvault/connector/factory/HTTPVaultConnectorFactoryTest.java
@@ -19,11 +19,9 @@ package de.stklcode.jvault.connector.factory;
import de.stklcode.jvault.connector.HTTPVaultConnector;
import de.stklcode.jvault.connector.exception.TlsException;
import de.stklcode.jvault.connector.exception.VaultConnectorException;
-import org.junit.Rule;
-import org.junit.contrib.java.lang.system.EnvironmentVariables;
+import de.stklcode.jvault.connector.test.EnvironmentMock;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
-import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import java.io.File;
import java.io.IOException;
@@ -40,7 +38,6 @@ import static org.junit.jupiter.api.Assertions.fail;
* @author Stefan Kalscheuer
* @since 0.6.0
*/
-@EnableRuleMigrationSupport
public class HTTPVaultConnectorFactoryTest {
private static String VAULT_ADDR = "https://localhost:8201";
private static Integer VAULT_MAX_RETRIES = 13;
@@ -49,9 +46,6 @@ public class HTTPVaultConnectorFactoryTest {
@TempDir
File tempDir;
- @Rule
- public final EnvironmentVariables environment = new EnvironmentVariables();
-
/**
* Test building from environment variables
*/
@@ -112,10 +106,10 @@ public class HTTPVaultConnectorFactoryTest {
}
private void setenv(String vault_addr, String vault_cacert, String vault_max_retries, String vault_token) {
- environment.set("VAULT_ADDR", vault_addr);
- environment.set("VAULT_CACERT", vault_cacert);
- environment.set("VAULT_MAX_RETRIES", vault_max_retries);
- environment.set("VAULT_TOKEN", vault_token);
+ EnvironmentMock.setenv("VAULT_ADDR", vault_addr);
+ EnvironmentMock.setenv("VAULT_CACERT", vault_cacert);
+ EnvironmentMock.setenv("VAULT_MAX_RETRIES", vault_max_retries);
+ EnvironmentMock.setenv("VAULT_TOKEN", vault_token);
}
private Object getRequestHelperPrivate(HTTPVaultConnector connector, String fieldName) throws NoSuchFieldException, IllegalAccessException {
diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java
index d659985..93dacb7 100644
--- a/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java
+++ b/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java
@@ -26,7 +26,7 @@ import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
/**
* JUnit Test for {@link SecretListResponse} model.
@@ -50,7 +50,6 @@ public class SecretListResponseTest {
* @throws InvalidResponseException Should not occur
*/
@Test
- @SuppressWarnings("unchecked")
public void getKeysTest() throws InvalidResponseException {
// Create empty Object.
SecretListResponse res = new SecretListResponse();
diff --git a/src/test/java/de/stklcode/jvault/connector/test/EnvironmentMock.java b/src/test/java/de/stklcode/jvault/connector/test/EnvironmentMock.java
new file mode 100644
index 0000000..582e056
--- /dev/null
+++ b/src/test/java/de/stklcode/jvault/connector/test/EnvironmentMock.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016-2019 Stefan Kalscheuer
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package de.stklcode.jvault.connector.test;
+
+import java.lang.reflect.Field;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.fail;
+
+/**
+ * Test helper to modify system environment.
+ *
+ * @author Stefan Kalscheuer
+ */
+@SuppressWarnings("unchecked")
+public class EnvironmentMock {
+ private static Map environment;
+
+ static {
+ try {
+ Map originalEnv = System.getenv();
+ Field mapField = originalEnv.getClass().getDeclaredField("m");
+ mapField.setAccessible(true);
+ environment = (Map) mapField.get(originalEnv);
+ } catch (NoSuchFieldException | IllegalAccessException | ClassCastException e) {
+ fail("Failed to intercept unmodifiable system environment");
+ }
+ }
+
+ public static void setenv(String key, String value) {
+ if (value != null) {
+ environment.put(key, value);
+ } else {
+ environment.remove(key);
+ }
+ }
+}