From b8079ce519e307c60848fb4cdfcc4b06b2c5318a Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Fri, 25 Mar 2022 12:21:56 +0100 Subject: [PATCH] Integration tests: protect Whitebox#getInternalState --- .../test/integration/WebhookIntegrationTest.java | 15 +++++++++++++-- .../config/IntegrationTestConfiguration.java | 13 +++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/openvidu-server/src/test/java/io/openvidu/server/test/integration/WebhookIntegrationTest.java b/openvidu-server/src/test/java/io/openvidu/server/test/integration/WebhookIntegrationTest.java index 1cdc8e77..7d4db302 100644 --- a/openvidu-server/src/test/java/io/openvidu/server/test/integration/WebhookIntegrationTest.java +++ b/openvidu-server/src/test/java/io/openvidu/server/test/integration/WebhookIntegrationTest.java @@ -89,7 +89,12 @@ public class WebhookIntegrationTest { private void mockWebhookHttpClient(int millisecondsDelayOnResponse) throws ClientProtocolException, IOException { CDRLoggerWebhook cdrLoggerWebhook = (CDRLoggerWebhook) cdr.getLoggers().stream() .filter(logger -> logger instanceof CDRLoggerWebhook).findFirst().get(); - this.webhook = Whitebox.getInternalState(cdrLoggerWebhook, "webhookSender"); + + try { + this.webhook = Whitebox.getInternalState(cdrLoggerWebhook, "webhookSender"); + } catch (Exception e) { + Assert.fail("Error getting private property from stubbed object: " + e.getMessage()); + } CloseableHttpResponse httpResponse = mock(CloseableHttpResponse.class); StatusLine statusLine = mock(StatusLine.class); @@ -100,7 +105,13 @@ public class WebhookIntegrationTest { } private void setHttpClientDelay(int millisecondsDelayOnResponse) throws ClientProtocolException, IOException { - HttpClient httpClient = PowerMockito.spy((HttpClient) Whitebox.getInternalState(webhook, "httpClient")); + HttpClient httpClient = null; + try { + httpClient = Whitebox.getInternalState(webhook, "httpClient"); + } catch (Exception e) { + Assert.fail("Error getting private property from stubbed object: " + e.getMessage()); + } + httpClient = PowerMockito.spy(httpClient); doAnswer(invocationOnMock -> { Thread.sleep(millisecondsDelayOnResponse); return invocationOnMock.callRealMethod(); diff --git a/openvidu-server/src/test/java/io/openvidu/server/test/integration/config/IntegrationTestConfiguration.java b/openvidu-server/src/test/java/io/openvidu/server/test/integration/config/IntegrationTestConfiguration.java index 69bdce11..07a1b43e 100644 --- a/openvidu-server/src/test/java/io/openvidu/server/test/integration/config/IntegrationTestConfiguration.java +++ b/openvidu-server/src/test/java/io/openvidu/server/test/integration/config/IntegrationTestConfiguration.java @@ -9,6 +9,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; +import org.junit.Assert; import org.kurento.client.Continuation; import org.kurento.client.KurentoClient; import org.kurento.client.MediaPipeline; @@ -26,6 +27,7 @@ import io.openvidu.server.kurento.kms.FixedOneKmsManager; import io.openvidu.server.kurento.kms.Kms; import io.openvidu.server.kurento.kms.KmsManager; import io.openvidu.server.kurento.kms.KmsProperties; +import io.openvidu.server.kurento.kms.LoadManager; /** * KmsManager bean mock @@ -44,10 +46,17 @@ public class IntegrationTestConfiguration { try { kmsProperties = invocation.getArgument(0); } catch (Exception e) { - System.err.println("Error getting argument from stubbed method: " + e.getMessage()); + Assert.fail("Error getting argument from stubbed method: " + e.getMessage()); } for (KmsProperties kmsProp : kmsProperties) { - Kms kms = new Kms(kmsProp, Whitebox.getInternalState(spy, "loadManager"), spy); + + LoadManager loadManager = null; + try { + loadManager = Whitebox.getInternalState(spy, "loadManager"); + } catch (Exception e) { + System.err.println("Error getting private property from stubbed object: " + e.getMessage()); + } + Kms kms = new Kms(kmsProp, loadManager, spy); KurentoClient kClient = mock(KurentoClient.class); doAnswer(i -> {