X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=webapp-backend%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fconfig%2FCaasIngressMockConfiguration.java;h=b9cbaf9092b33fb0ffa6e1f3ddb0a05eb6ea3be7;hb=a4c4e6ac19b6b36038bf2ec5bca54f1ead616bfc;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..b9cbaf90 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,12 @@ 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.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; @@ -43,45 +42,34 @@ import org.springframework.context.annotation.Profile; */ @Configuration @Profile("test") -public class CaasIngressMockConfiguration { +public class CaasIngressMockConfiguration extends AbstractMockConfiguration { 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 pltPods; + if (RICInstanceMockConfiguration.INSTANCE_KEY_1.equals(instanceKey)) + pltPods = readDataFromPath("caas-ingress-ricplt-pods-1.json"); + else + pltPods = readDataFromPath("caas-ingress-ricplt-pods-2.json"); 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; }