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%2FAppManagerMockConfiguration.java;h=3e27120c22e6d64aeb2433ae2484258081c522d4;hb=9cf5b95a5bc9810d739d14d324dd7d80cbdb4a7d;hp=6b0517e81123c41d2c1f01d3f77098735d722d96;hpb=53f1fcf033e3a166d7203e0a1c5e0971f9c6bc16;p=portal%2Fric-dashboard.git diff --git a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/AppManagerMockConfiguration.java b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/AppManagerMockConfiguration.java index 6b0517e8..3e27120c 100644 --- a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/AppManagerMockConfiguration.java +++ b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/AppManagerMockConfiguration.java @@ -25,6 +25,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.lang.invoke.MethodHandles; +import java.util.Arrays; import org.oransc.ric.plt.appmgr.client.api.HealthApi; import org.oransc.ric.plt.appmgr.client.api.XappApi; @@ -42,6 +43,7 @@ import org.oransc.ric.plt.appmgr.client.model.Xapp.StatusEnum; import org.oransc.ric.plt.appmgr.client.model.XappInstance; 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; @@ -59,35 +61,20 @@ public class AppManagerMockConfiguration { 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 AllDeployableXapps deployableApps; - private final AllDeployedXapps deployedXapps; - private final AllXappConfig allXappConfigs; - private final SubscriptionResponse subRes; - - public AppManagerMockConfiguration() { - logger.info("Configuring mock xApp Manager"); - final String[] appNames = { "AdmissionControl", "UE Event Collector" }; - final String configJson = " { \"config\" : \"example\" }"; - final String descriptorJson = " { \"descriptor\" : \"example\" }"; - allXappConfigs = new AllXappConfig(); - deployableApps = new AllDeployableXapps(); - deployedXapps = new AllDeployedXapps(); - for (String n : appNames) { - ConfigMetadata metadata = new ConfigMetadata().configName("config-" + n).name(n).namespace("namespace"); - XAppConfig config = new XAppConfig().config(configJson).descriptor(descriptorJson).metadata(metadata); - allXappConfigs.add(config); - deployableApps.add(n); - Xapp xapp = new Xapp().name(n).version("version").status(StatusEnum.UNKNOWN); - xapp.addInstancesItem(new XappInstance().name("abcd-1234").ip("127.0.0.1").port(200) - .status(XappInstance.StatusEnum.RUNNING)); - deployedXapps.add(xapp); - } - subRes = new SubscriptionResponse().eventType(SubscriptionResponse.EventTypeEnum.ALL).id("subid").version(1); + @Autowired + public AppManagerMockConfiguration(@Value("${mock.config.delay:0}") int delayMs) { + logger.debug("ctor: configured with delay {}", delayMs); + this.delayMs = delayMs; } + /** + * Builds a mock HealthApi object. Does not accept an instance key because this + * API answers no text. + * + * @return mock HealthApi + */ private HealthApi healthApi() { ApiClient mockClient = mock(ApiClient.class); when(mockClient.getStatusCode()).thenReturn(HttpStatus.OK); @@ -98,7 +85,39 @@ public class AppManagerMockConfiguration { return mockApi; } - private XappApi xappApi() { + /** + * Builds a mock XappApi object. + * + * @param instanceKey + * RIC instance + * @return Object that returns instance-specific results + */ + private XappApi xappApi(String instanceKey) { + logger.debug("Creating XappApi for instance {}", instanceKey); + // Create instance-specific objects + String[] appNames = { "AdmissionControl " + instanceKey, "UE Event Collector " + instanceKey }; + if (RICInstanceMockConfiguration.INSTANCE_KEY_1.equals(instanceKey)) { + appNames = Arrays.copyOf(appNames, appNames.length + 1); + appNames[appNames.length - 1] = "ANR " + instanceKey; + } + final String configJson = " { \"config\" : \"example-" + instanceKey + "\"}"; + final String descriptorJson = " { \"descriptor\" : \"example-" + instanceKey + "\"}"; + final AllXappConfig allXappConfigs = new AllXappConfig(); + final AllDeployableXapps deployableApps = new AllDeployableXapps(); + final AllDeployedXapps deployedXapps = new AllDeployedXapps(); + for (String n : appNames) { + ConfigMetadata metadata = new ConfigMetadata().configName("config-" + n).name(n).namespace("namespace"); + XAppConfig config = new XAppConfig().config(configJson).descriptor(descriptorJson).metadata(metadata); + allXappConfigs.add(config); + deployableApps.add(n); + Xapp xapp = new Xapp().name(n).version("version").status(StatusEnum.UNKNOWN); + xapp.addInstancesItem(new XappInstance().name("abcd-1234").ip("127.0.0.1").port(200) + .status(XappInstance.StatusEnum.RUNNING)); + deployedXapps.add(xapp); + } + final SubscriptionResponse subRes = new SubscriptionResponse().eventType(SubscriptionResponse.EventTypeEnum.ALL) + .id("subid").version(1); + // Mock the methods to return the instance-specific objects ApiClient mockClient = mock(ApiClient.class); when(mockClient.getStatusCode()).thenReturn(HttpStatus.OK); XappApi mockApi = mock(XappApi.class); @@ -189,8 +208,10 @@ public class AppManagerMockConfiguration { final AppManagerApiBuilder mockBuilder = mock(AppManagerApiBuilder.class); final HealthApi mockHealthApi = healthApi(); when(mockBuilder.getHealthApi(any(String.class))).thenReturn(mockHealthApi); - final XappApi mockXappApi = xappApi(); - when(mockBuilder.getXappApi(any(String.class))).thenReturn(mockXappApi); + for (final String key : RICInstanceMockConfiguration.INSTANCE_KEYS) { + final XappApi mockXappApi = xappApi(key); + when(mockBuilder.getXappApi(key)).thenReturn(mockXappApi); + } return mockBuilder; }