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=09a9d098f2b4486e921eec22ba43e5a4dc1f8b1f;hpb=50fb3b40ec45a65ba7c687e290a3d7f491484b49;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 09a9d098..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,38 +61,21 @@ 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", "Automatic Neighbor Relation", "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; } - @Bean - // Use the same name as regular configuration - public HealthApi xappMgrHealthApi() { + /** + * 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); HealthApi mockApi = mock(HealthApi.class); @@ -100,9 +85,39 @@ public class AppManagerMockConfiguration { return mockApi; } - @Bean - // Use the same name as regular configuration - public XappApi xappMgrXappApi() { + /** + * 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); @@ -187,4 +202,17 @@ public class AppManagerMockConfiguration { return mockApi; } + @Bean + // Must use the same name as the non-mock configuration + public AppManagerApiBuilder appManagerApiBuilder() { + final AppManagerApiBuilder mockBuilder = mock(AppManagerApiBuilder.class); + final HealthApi mockHealthApi = healthApi(); + when(mockBuilder.getHealthApi(any(String.class))).thenReturn(mockHealthApi); + for (final String key : RICInstanceMockConfiguration.INSTANCE_KEYS) { + final XappApi mockXappApi = xappApi(key); + when(mockBuilder.getXappApi(key)).thenReturn(mockXappApi); + } + return mockBuilder; + } + }