X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fconfig%2FCaasIngressMockConfiguration.java;h=b10dcc8300cbb150b68129a4fe47d56c3390868b;hb=refs%2Fchanges%2F58%2F2258%2F2;hp=1420086fe7e5c6d53deb69c36f70fd5a3f22ff7d;hpb=53f1fcf033e3a166d7203e0a1c5e0971f9c6bc16;p=portal%2Fric-dashboard.git diff --git a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/CaasIngressMockConfiguration.java b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/CaasIngressMockConfiguration.java index 1420086f..b10dcc83 100644 --- a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/CaasIngressMockConfiguration.java +++ b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/CaasIngressMockConfiguration.java @@ -25,13 +25,13 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; import java.lang.invoke.MethodHandles; +import org.oransc.ric.portal.dashboard.TestUtils; import org.oransc.ric.portal.dashboard.k8sapi.SimpleKubernetesClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -48,40 +48,28 @@ public class CaasIngressMockConfiguration { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); // Simulate remote method delay for UI testing - @Value("${mock.config.delay:0}") private int delayMs; - private final String pltPods; - - public CaasIngressMockConfiguration() throws IOException { - logger.info("Configuring mock CAAS-Ingres clients"); - // Files in src/test/resources - pltPods = readDataFromPath("caas-ingress-ricplt-pods.json"); + @Autowired + public CaasIngressMockConfiguration(@Value("${mock.config.delay:0}") int delayMs) { + logger.debug("ctor: configured with delay {}", delayMs); + this.delayMs = delayMs; } - private String readDataFromPath(String path) throws IOException { - InputStream is = MethodHandles.lookup().lookupClass().getClassLoader().getResourceAsStream(path); - if (is == null) { - String msg = "Failed to find resource on classpath: " + path; - logger.error(msg); - throw new RuntimeException(msg); - } - InputStreamReader reader = new InputStreamReader(is, "UTF-8"); - StringBuilder sb = new StringBuilder(); - char[] buf = new char[8192]; - int i; - while ((i = reader.read(buf)) > 0) - sb.append(buf, 0, i); - reader.close(); - is.close(); - return sb.toString(); - } - - private SimpleKubernetesClient simpleKubernetesClient() { + private SimpleKubernetesClient simpleKubernetesClient(String instanceKey) throws IOException { + // File in src/test/resources + String podFile = RICInstanceMockConfiguration.INSTANCE_KEY_1.equals(instanceKey) + ? "caas-ingress-ricplt-pods-1.json" + : "caas-ingress-ricplt-pods-2.json"; + String pltPods = TestUtils.readDataFromPath(podFile); SimpleKubernetesClient mockClient = mock(SimpleKubernetesClient.class); doAnswer(inv -> { String ns = inv.getArgument(0); logger.debug("listPods for namespace {}", ns); + if (delayMs > 0) { + logger.debug("listPods sleeping {}", delayMs); + Thread.sleep(delayMs); + } if ("ricplt".equals(ns)) return pltPods; else @@ -92,10 +80,12 @@ public class CaasIngressMockConfiguration { @Bean // The bean (method) name must be globally unique - public SimpleKubernetesClientBuilder simpleKubernetesClientBuilder() { + public SimpleKubernetesClientBuilder simpleKubernetesClientBuilder() throws IOException { final SimpleKubernetesClientBuilder mockBuilder = mock(SimpleKubernetesClientBuilder.class); - SimpleKubernetesClient client = simpleKubernetesClient(); - when(mockBuilder.getSimpleKubernetesClient(any(String.class))).thenReturn(client); + for (final String key : RICInstanceMockConfiguration.INSTANCE_KEYS) { + SimpleKubernetesClient client = simpleKubernetesClient(key); + when(mockBuilder.getSimpleKubernetesClient(key)).thenReturn(client); + } return mockBuilder; }