X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=rapp-manager-models%2Fsrc%2Ftest%2Fjava%2Fcom%2Foransc%2Frappmanager%2Fmodels%2Fcsar%2FRappCsarConfigurationHandlerTest.java;h=f1d3044b691d7e48593e443514fb35df65ab9e31;hb=1eda1b787de9dedfa5701eabc9d58a7a16f9f3cb;hp=2325789004f94843cdcb27bedc02aad3f0e50289;hpb=4b54b7ed29e736b2f80878bab90acaedb4e7117e;p=nonrtric%2Fplt%2Frappmanager.git diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java index 2325789..f1d3044 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java @@ -24,36 +24,51 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.JsonSyntaxException; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappResources; import com.oransc.rappmanager.models.rappinstance.RappACMInstance; import com.oransc.rappmanager.models.rappinstance.RappDMEInstance; +import com.oransc.rappmanager.models.rappinstance.RappInstance; import com.oransc.rappmanager.models.rappinstance.RappSMEInstance; import java.io.ByteArrayOutputStream; import java.io.File; -import java.util.List; +import java.io.IOException; import java.util.Set; import java.util.UUID; +import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.test.context.ContextConfiguration; @SpringBootTest -@ContextConfiguration(classes = {ObjectMapper.class, RappCsarConfigurationHandler.class}) +@EnableConfigurationProperties +@ContextConfiguration( + classes = {ObjectMapper.class, RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class}) class RappCsarConfigurationHandlerTest { @SpyBean RappCsarConfigurationHandler rappCsarConfigurationHandler; + @Autowired + RappsEnvironmentConfiguration rappsEnvironmentConfiguration; + @Autowired + ObjectMapper objectMapper; String validCsarFileLocation = "src/test/resources/"; @@ -64,14 +79,27 @@ class RappCsarConfigurationHandlerTest { private final String invalidRappEmptyAsdFile = "invalid-rapp-package-empty-asd-yaml.csar"; @Test - void testCsarInstantiationPayload() throws JSONException { + void testCsarInstantiationPayload() throws JSONException, JsonProcessingException { Rapp rapp = Rapp.builder().name("").packageName(validRappFile).packageLocation(validCsarFileLocation).build(); UUID compositionId = UUID.randomUUID(); - RappACMInstance rappACMInstance = new RappACMInstance(); - rappACMInstance.setInstance("kserve-instance"); - JSONObject jsonObject = new JSONObject( - rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappACMInstance, compositionId)); - assertEquals(jsonObject.get("compositionId"), String.valueOf(compositionId)); + RappInstance rappInstance = new RappInstance(); + RappACMInstance rappKserveACMInstance = new RappACMInstance(); + rappKserveACMInstance.setInstance("kserve-instance"); + rappInstance.setAcm(rappKserveACMInstance); + JSONObject kserveInstanceJsonObject = + new JSONObject(rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappInstance, compositionId)); + assertEquals(kserveInstanceJsonObject.get("compositionId"), String.valueOf(compositionId)); + RappACMInstance rappK8sACMInstance = new RappACMInstance(); + rappK8sACMInstance.setInstance("k8s-instance"); + rappInstance.setAcm(rappK8sACMInstance); + JsonNode jsonNode = objectMapper.readTree( + rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappInstance, compositionId)); + assertEquals(jsonNode.get("compositionId").asText(), String.valueOf(compositionId)); + JsonNode overrideParamsNode = jsonNode.at("/elements").elements().next().at("/properties/chart/overrideParams"); + System.out.println(overrideParamsNode); + assertEquals(overrideParamsNode.get("appId").asText(), rappInstance.getRappInstanceId().toString()); + assertEquals(overrideParamsNode.get("smeDiscoveryEndpoint").asText(), + rappsEnvironmentConfiguration.getSmeDiscoveryEndpoint()); } @Test @@ -95,6 +123,14 @@ class RappCsarConfigurationHandlerTest { assertThat(fileByteArray.size()).isZero(); } + @Test + void testInvalidZipStreamGetFromCsar() throws IOException { + ZipArchiveInputStream zipArchiveInputStream = mock(ZipArchiveInputStream.class); + doThrow(new IOException()).when(zipArchiveInputStream).getNextEntry(); + ByteArrayOutputStream fileByteArray = rappCsarConfigurationHandler.getFileFromCsar(zipArchiveInputStream, null); + assertThat(fileByteArray.size()).isZero(); + } + @Test void testListResources() { UUID rappId = UUID.randomUUID(); @@ -105,7 +141,7 @@ class RappCsarConfigurationHandlerTest { assertThat(rappResources).isNotNull(); assertNotNull(rappResources.getAcm().getCompositionDefinitions()); assertThat(rappResources.getAcm().getCompositionInstances()).hasSize(4); - assertThat(rappResources.getSme().getProviderFunctions()).hasSize(4); + assertThat(rappResources.getSme().getProviderFunctions()).hasSize(3); assertThat(rappResources.getSme().getServiceApis()).hasSize(2); assertThat(rappResources.getSme().getInvokers()).hasSize(2); assertThat(rappResources.getDme().getProducerInfoTypes()).hasSize(2); @@ -180,12 +216,17 @@ class RappCsarConfigurationHandlerTest { void testGetSmeInvokerPayload() { UUID rappId = UUID.randomUUID(); RappSMEInstance rappSMEInstance = new RappSMEInstance(); - rappSMEInstance.setServiceApis("invoker-app1"); + rappSMEInstance.setInvokers("invoker-app1"); + RappInstance rappInstance = new RappInstance(); + rappInstance.setSme(rappSMEInstance); Rapp rapp = Rapp.builder().rappId(rappId).name("").packageName(validRappFile).packageLocation(validCsarFileLocation) .build(); - String smeProviderDomainPayload = rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappSMEInstance); - assertNotNull(smeProviderDomainPayload); + JSONArray smeInvokerPayload = + new JSONArray(rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappInstance)); + assertNotNull(smeInvokerPayload); + assertEquals(smeInvokerPayload.getJSONObject(0).getString("apiInvokerInformation"), + rappInstance.getRappInstanceId().toString()); } @Test @@ -241,24 +282,37 @@ class RappCsarConfigurationHandlerTest { } @Test - void testListDeploymentItems() { + void testGetAsdMetadata() { Rapp rapp = Rapp.builder().name("").packageName(validRappFile).packageLocation(validCsarFileLocation).build(); - List deploymentItems = rappCsarConfigurationHandler.getDeploymentItems(rapp); - assertEquals(2, deploymentItems.size()); + AsdMetadata asdMetadata = rappCsarConfigurationHandler.getAsdMetadata(rapp); + assertEquals("123e4567-e89b-12d3-a456-426614174000", asdMetadata.getDescriptorId()); + assertEquals("040eff2a-eb1a-4aff-bd46-37ce38092985", asdMetadata.getDescriptorInvariantId()); + assertEquals(2, asdMetadata.getDeploymentItems().size()); } @ParameterizedTest @ValueSource(strings = {invalidRappNoAsdFile, invalidRappEmptyAsdFile}) - void testListDeploymentItemsNoAsd(String packageName) { + void testGetAsdMetadataNoAsd(String packageName) { Rapp rapp = Rapp.builder().name("").packageName(packageName).packageLocation(validCsarFileLocation).build(); - assertThat(rappCsarConfigurationHandler.getDeploymentItems(rapp)).isEmpty(); + assertThat(rappCsarConfigurationHandler.getAsdMetadata(rapp)).isNotNull(); } @Test - void testListDeploymentItemsWithException() throws JsonProcessingException { + void testGetAsdMetadataException() throws JsonProcessingException { Rapp rapp = Rapp.builder().name("").packageName(validRappFile).packageLocation(validCsarFileLocation).build(); doThrow(new JsonSyntaxException("")).when(rappCsarConfigurationHandler).getAsdContentNode(any()); - assertThat(rappCsarConfigurationHandler.getDeploymentItems(rapp)).isEmpty(); + assertNull(rappCsarConfigurationHandler.getAsdMetadata(rapp).getDescriptorId()); + assertNull(rappCsarConfigurationHandler.getAsdMetadata(rapp).getDescriptorInvariantId()); + assertThat(rappCsarConfigurationHandler.getAsdMetadata(rapp).getDeploymentItems()).isNull(); + } + + @Test + void testGetAsdMetadataNullAsdContent() throws JsonProcessingException { + Rapp rapp = Rapp.builder().name("").packageName(validRappFile).packageLocation(validCsarFileLocation).build(); + doReturn(null).when(rappCsarConfigurationHandler).getAsdContentNode(any()); + assertNull(rappCsarConfigurationHandler.getAsdMetadata(rapp).getDescriptorId()); + assertNull(rappCsarConfigurationHandler.getAsdMetadata(rapp).getDescriptorInvariantId()); + assertThat(rappCsarConfigurationHandler.getAsdMetadata(rapp).getDeploymentItems()).isNull(); } @Test