From 3bf5f113cd4dfefdbc27f01fd7ec7c5e39d48695 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Thu, 18 Jul 2019 11:41:19 +0300 Subject: Don't override SystemProperties without restoring it This resolves NullPointerException in Dublin's Jenkins' SyncRestClientForHttpServerTest. Issue-ID: VID-503 (cherry picked from commit ef34f16650be1f251447a7b9a1d9f1369ca459de) Change-Id: I65fbed0a6f6214d9495d0cb6456b3a8e4f094a3d Signed-off-by: Ittay Stern --- .../java/org/onap/vid/testUtils/TestUtils.java | 27 +++++++++++++++------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java') diff --git a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java index 3d919d72d..756d17534 100644 --- a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java +++ b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java @@ -50,6 +50,7 @@ import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.lang3.reflect.MethodUtils; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.json.JSONArray; @@ -61,6 +62,7 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.asdc.beans.Service; +import org.springframework.core.env.Environment; import org.springframework.mock.env.MockEnvironment; /** @@ -252,18 +254,27 @@ public class TestUtils { } - //Please use resetSystemProperties after using this method, so other test won't be affected - public static void mockSystemPropertyWithKeyValue(String key, String value) { - MockEnvironment mockEnvironment = new MockEnvironment(); - mockEnvironment.setProperty(key, value); + public interface Test { - SystemProperties systemProperties = new SystemProperties(); - systemProperties.setEnvironment(mockEnvironment); + void apply(); } - public static void resetSystemProperties() { + public static void testWithSystemProperty(String key, String value, Test test) throws Exception { SystemProperties systemProperties = new SystemProperties(); - systemProperties.setEnvironment(null); + //use reflection to invoke protected method + Environment originalEnvironment = (Environment) MethodUtils + .invokeMethod(systemProperties, true, "getEnvironment"); + + try { + Environment environment = mock(Environment.class); + systemProperties.setEnvironment(environment); + when(environment.getRequiredProperty(key)).thenReturn(value); + when(environment.containsProperty(key)).thenReturn(true); + test.apply(); + } + finally { + systemProperties.setEnvironment(originalEnvironment); + } } } -- cgit 1.2.3-korg