From 44d49cc9257c70ffdf70b9f6c8252792e706c48b Mon Sep 17 00:00:00 2001 From: Eylon Malin Date: Thu, 29 Aug 2019 14:47:01 +0300 Subject: [PATCH] add UT to ToscaParserImpl and fix little bug Issue-ID: VID-378 Signed-off-by: Eylon Malin Change-Id: I5ea0f09c2898c3a7e1db60d37dde754138a86121 Signed-off-by: Eylon Malin --- .../main/java/org/onap/vid/model/ServiceModel.java | 2 +- .../onap/vid/asdc/parser/ToscaParserImpl2Test.java | 115 +++++++++++++++------ .../java/org/onap/vid/testUtils/TestUtils.java | 3 +- .../csars/service-MnsVnn1bDmzSvc-csar.csar | Bin 0 -> 9042 bytes .../csars/service-MnsVnn1bExnSvc-csar.csar | Bin 0 -> 8913 bytes .../src/test/resources/vlan-tagging.json | 4 +- vid-app-common/src/test/resources/vrf-csar.json | 84 +++++++++++++++ 7 files changed, 170 insertions(+), 38 deletions(-) create mode 100644 vid-app-common/src/test/resources/csars/service-MnsVnn1bDmzSvc-csar.csar create mode 100644 vid-app-common/src/test/resources/csars/service-MnsVnn1bExnSvc-csar.csar create mode 100644 vid-app-common/src/test/resources/vrf-csar.json diff --git a/vid-app-common/src/main/java/org/onap/vid/model/ServiceModel.java b/vid-app-common/src/main/java/org/onap/vid/model/ServiceModel.java index 121c7e4c1..1c8a465cb 100644 --- a/vid-app-common/src/main/java/org/onap/vid/model/ServiceModel.java +++ b/vid-app-common/src/main/java/org/onap/vid/model/ServiceModel.java @@ -333,7 +333,7 @@ public class ServiceModel { // now check to see if there is a vf module with customization name that starts with normalizedVnfCustomizationName - if (!MapUtils.isEmpty(getVolumeGroups())) { + if (!MapUtils.isEmpty(getVfModules())) { for (Entry vfModuleComponent : getVfModules().entrySet()) { vfModuleCustomizationName = vfModuleComponent.getValue().getModelCustomizationName(); diff --git a/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java b/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java index 92d78d43e..e25834bd6 100644 --- a/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java +++ b/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java @@ -26,11 +26,13 @@ import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.hasKey; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.onap.vid.asdc.parser.ToscaParserImpl2.Constants.ECOMP_GENERATED_NAMING_PROPERTY; import static org.onap.vid.testUtils.TestUtils.assertJsonStringEqualsIgnoreNulls; +import static org.onap.vid.testUtils.TestUtils.testWithSystemProperty; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -43,6 +45,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.UUID; import java.util.stream.Collectors; @@ -57,6 +60,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; +import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.toscaparser.api.Group; import org.onap.sdc.toscaparser.api.NodeTemplate; import org.onap.sdc.toscaparser.api.Property; @@ -178,15 +182,16 @@ public class ToscaParserImpl2Test { } } -// @Test -// public void verifyFabricConfiguration() throws Exception { -// ToscaParserMockHelper toscaParserMockHelper = Arrays.stream(getExpectedServiceModel()).filter(x -> x.getUuid().equals(Constants.fabricConfigurationUuid)).findFirst().get(); -// ServiceModel actualServiceModel = toscaParserImpl2.makeServiceModel(getCsarPath(Constants.fabricConfigurationUuid), getServiceByUuid(Constants.fabricConfigurationUuid)); -// final Map fabricConfigurations = actualServiceModel.getFabricConfigurations(); -// String fabricConfigName = "Fabric Configuration 0"; -// Map expectedFC = toscaParserMockHelper.getNewServiceModel().getFabricConfigurations(); -// verifyBaseNodeMetadata(expectedFC.get(fabricConfigName), fabricConfigurations.get(fabricConfigName)); -// } + @Test + public void verifyFabricConfiguration() throws Exception { + ToscaParserMockHelper toscaParserMockHelper = Arrays.stream(getExpectedServiceModel()).filter(x -> x.getUuid().equals(Constants.fabricConfigurationUuid)).findFirst().get(); + ServiceModel actualServiceModel = toscaParserImpl2.makeServiceModel(getCsarPath(Constants.fabricConfigurationUuid), getServiceByUuid(Constants.fabricConfigurationUuid)); + final Map fabricConfigurations = actualServiceModel.getFabricConfigurations(); + String fabricConfigName = "Fabric Configuration 0"; + Map expectedFC = toscaParserMockHelper.getServiceModel().getFabricConfigurations(); + verifyBaseNodeMetadata(expectedFC.get(fabricConfigName), fabricConfigurations.get(fabricConfigName)); + } + private void verifyCollectionResource(CR expectedCR, CR actualCR) { verifyBaseNodeMetadata(expectedCR, actualCR); @@ -273,6 +278,25 @@ public class ToscaParserImpl2Test { assertJsonStringEqualsIgnoreNulls("{ vfModules: { 201712488_pasqualevpe10..201712488PasqualeVpe1..PASQUALE_vRE_BV..module-1: { inputs: { availability_zone_0: { } } } } }", om.writeValueAsString(serviceModel)); } + @DataProvider + public static Object[] oldCsarUuid() { + return new Object[][]{{ "2a53419b-3f85-4ad5-a9c9-d79905500a27", "MNS VNN1B EXN VF 1" } + , {"e32a5014-357f-4be4-b3f9-fecb0010811e", "MNS VNN1B DMZ VF 1"}}; + } + + @Test(dataProvider = "oldCsarUuid") + public void csarWithVnfWithVfModuleInModel(String oldCsarUuid, String vnfName) throws Exception { + testWithSystemProperty("asdc.model.namespace", "com.att.d2.", ()-> { + ToscaParser tosca = new ToscaParserImpl(); + final UUID uuid = UUID.fromString(oldCsarUuid); + final ServiceModel serviceModel = tosca.makeServiceModel(oldCsarUuid, asdcClient.getServiceToscaModel(uuid), asdcClient.getService(uuid)); + assertThat(serviceModel.getVnfs(), aMapWithSize(1)); + assertThat(serviceModel.getVfModules(), aMapWithSize(2)); + assertThat(serviceModel.getVolumeGroups(), aMapWithSize(0)); + assertThat(serviceModel.getVnfs().get(vnfName).getVfModules(), aMapWithSize(2)); + }); + } + @Test public void modelWithNfNamingWithToValues_ecompGeneratedNamingIsExtracted() throws Exception { final ToscaParserMockHelper mockHelper = new ToscaParserMockHelper("90fe6842-aa76-4b68-8329-5c86ff564407", "empty.json"); @@ -309,6 +333,19 @@ public class ToscaParserImpl2Test { JsonAssert.assertJsonEquals(actualVnfGroups, expectedVnfGroups); } + @Test + public void assertEqualsBetweenVrfs() throws Exception { + ToscaParserMockHelper mockHelper = new ToscaParserMockHelper(Constants.vrfUuid, Constants.vrfFilePath); + ServiceModel serviceModel = toscaParserImpl2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())); + Map actualVrfs = serviceModel.getVrfs(); + Map expectedVrfs = mockHelper.getServiceModel().getVrfs(); + JsonAssert.assertJsonEquals(expectedVrfs, actualVrfs); + //assert that vrf isn't returned also as configuration (because it's type is configuration) + Map actualConfigurations = serviceModel.getConfigurations(); + Map expectedConfigurations = mockHelper.getServiceModel().getConfigurations(); + JsonAssert.assertJsonEquals(expectedConfigurations, actualConfigurations ); + } + private void verifyBaseNodeMetadata(Node expectedNode, Node actualNode) { Assert.assertEquals(expectedNode.getName(), actualNode.getName()); Assert.assertEquals(expectedNode.getCustomizationUuid(), actualNode.getCustomizationUuid()); @@ -337,9 +374,9 @@ public class ToscaParserImpl2Test { new ToscaParserMockHelper(Constants.vfWithAnnotationUuid, Constants.vfWithAnnotationFilePath), new ToscaParserMockHelper(Constants.vfWithVfcGroup, Constants.vfWithVfcGroupFilePath), new ToscaParserMockHelper(Constants.configurationUuid, Constants.configurationFilePath), -// new ToscaParserMockHelper(Constants.fabricConfigurationUuid, Constants.fabricConfigurationFilePath), -// new ToscaParserMockHelper(Constants.vlanTaggingUuid, Constants.vlanTaggingFilePath), -// new ToscaParserMockHelper(Constants.vnfGroupingUuid, Constants.vnfGroupingFilePath) + new ToscaParserMockHelper(Constants.fabricConfigurationUuid, Constants.fabricConfigurationFilePath), + new ToscaParserMockHelper(Constants.vlanTaggingUuid, Constants.vlanTaggingFilePath), + new ToscaParserMockHelper(Constants.vnfGroupingUuid, Constants.vnfGroupingFilePath), new ToscaParserMockHelper("3f6bd9e9-0942-49d3-84e8-6cdccd6de339", "./vLoadBalancerMS-with-policy.TOSCA.json"), }; @@ -371,12 +408,14 @@ public class ToscaParserImpl2Test { static final String vfWithVfcGroupFilePath = "vf-with-vfcInstanceGroups.json"; public static final String configurationByPolicyFalseUuid = "ee6d61be-4841-4f98-8f23-5de9da845544"; public static final String configurationByPolicyFalseFilePath = "policy-configuration-by-policy-false.JSON"; - //public static final String fabricConfigurationUuid = "12344bb4-a416-4b4e-997e-0059973630b9"; - //public static final String fabricConfigurationFilePath = "fabric-configuration.json"; - //public static final String vlanTaggingUuid = "1837481c-fa7d-4362-8ce1-d05fafc87bd1"; - //public static final String vlanTaggingFilePath = "vlan-tagging.json"; - //public static final String vnfGroupingUuid = "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc"; - //public static final String vnfGroupingFilePath = "vnf-grouping-csar.json"; + public static final String fabricConfigurationUuid = "12344bb4-a416-4b4e-997e-0059973630b9"; + public static final String fabricConfigurationFilePath = "fabric-configuration.json"; + public static final String vlanTaggingUuid = "1837481c-fa7d-4362-8ce1-d05fafc87bd1"; + public static final String vlanTaggingFilePath = "vlan-tagging.json"; + public static final String vnfGroupingUuid = "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc"; + public static final String vnfGroupingFilePath = "vnf-grouping-csar.json"; + public static final String vrfUuid = "f028b2e2-7080-4b13-91b2-94944d4c42d8"; + public static final String vrfFilePath = "vrf-csar.json"; public static final String QUANTITY = "quantity"; @@ -409,22 +448,30 @@ public class ToscaParserImpl2Test { )); } -// @DataProvider -// public Object[][] expectedPoliciesTargets() { -// return new Object[][] { -// {Constants.vnfGroupingUuid, newArrayList("groupingservicefortest..ResourceInstanceGroup..0", "groupingservicefortest..ResourceInstanceGroup..1")}, -// {Constants.vfUuid, newArrayList()}, -// {Constants.vlanTaggingUuid, newArrayList()} -// }; -// } -// -// @Test(dataProvider = "expectedPoliciesTargets") -// public void testExtractNamingPoliciesTargets(String uuid, ArrayList expectedTargets) throws AsdcCatalogException, SdcToscaParserException { -// ISdcCsarHelper sdcCsarHelper = toscaParserImpl2.getSdcCsarHelper(getCsarPath(uuid)); -// List policiesTargets = toscaParserImpl2.extractNamingPoliciesTargets(sdcCsarHelper); -// -// assertEquals(expectedTargets, policiesTargets); -// } + @DataProvider + public Object[][] expectedPoliciesTargets() { + return new Object[][] { + {Constants.vnfGroupingUuid, newArrayList("groupingservicefortest..ResourceInstanceGroup..0", "groupingservicefortest..ResourceInstanceGroup..1")}, + {Constants.vfUuid, newArrayList()}, + {Constants.vlanTaggingUuid, newArrayList()} + }; + } + + @Test(dataProvider = "expectedPoliciesTargets") + public void testExtractNamingPoliciesTargets(String uuid, ArrayList expectedTargets) throws AsdcCatalogException, SdcToscaParserException { + ISdcCsarHelper sdcCsarHelper = toscaParserImpl2.getSdcCsarHelper(getCsarPath(uuid)); + List policiesTargets = toscaParserImpl2.extractNamingPoliciesTargets(sdcCsarHelper); + + assertEquals(expectedTargets, policiesTargets); + } + + @Test + public void testScalingPolicyOfVnfGroup() throws AsdcCatalogException, SdcToscaParserException { + String vnfGroupingUuid = "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc"; + Map actualVnfGroups = toscaParserImpl2.makeServiceModel(getCsarPath(vnfGroupingUuid), getServiceByUuid(vnfGroupingUuid)).getVnfGroups(); + assertFalse(actualVnfGroups.get("groupingservicefortest..ResourceInstanceGroup..0").getProperties().containsKey(Constants.QUANTITY)); + assertEquals(3, actualVnfGroups.get("groupingservicefortest..ResourceInstanceGroup..1").getProperties().get(Constants.QUANTITY)); + } @DataProvider public Object[][] expectedEcompGeneratedNaming() { diff --git a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java index 5fc583274..58ee2d38d 100644 --- a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java +++ b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java @@ -68,6 +68,7 @@ import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.vid.asdc.AsdcCatalogException; import org.onap.vid.asdc.beans.Service; import org.onap.vid.mso.model.CloudConfiguration; import org.springframework.core.env.Environment; @@ -279,7 +280,7 @@ public class TestUtils { public interface Test { - void apply(); + void apply() throws AsdcCatalogException; } public static void testWithSystemProperty(String key, String value, Test test) throws Exception { diff --git a/vid-app-common/src/test/resources/csars/service-MnsVnn1bDmzSvc-csar.csar b/vid-app-common/src/test/resources/csars/service-MnsVnn1bDmzSvc-csar.csar new file mode 100644 index 0000000000000000000000000000000000000000..b7b011a07a7d665a04f723ca4a1bd04ec448fce9 GIT binary patch literal 9042 zcmbt)1yGzz);1m-g1fs8?i$?Pok0c}WN^3O?wSM`Ah^4`LxMZO2?PivK(O#7TmSCf zd$)GCw*K?hTh(1%eNI=`bNZ-;GCTqv3^Fn@jI3n663icn_}5rRUHg?3yQ+m9en}fk7T1 z7chhqV&m=wvbJGY1w-_}U@j{eXFqK(YjzJCXICdn4;v0&XQwkmW0!SdoS>~oR9M88 zBMT`hed7t^IjCgl2>Zzr+Lt)VODo(Ag=z(%QK{g^M2^fe8L$1);ng!kaXKWS+dEsq zCUg2{^3wso>uHkupL(_TgNsMK!7bvM6-J0~vvL89 zmU_}gw!=ofF%xKPi1QXO%~0-yW@QG$7@oLTVQi31MCuDE`^BHD<>yPSXvMt!C^jYv zn(Gy5e5`x{ZB1*m>{m3_<48w_y9_h3m^q~@pC-}JaOy`&`sM=euFenVP_uDIYxbzs z6k_2<0@5SFu?DEmU4T+LkB~}w+n%UbqZrAQYC@=51n(A(xOU^AiF?8+r`%MTf_7O; zn@(VMTb|psqPy^tWdt>&qsLBLQD~<*xzJx_UvRW$zr7=`>lVW>m zHGjusj9$=8?+e_9UdhKSLVNWe)0@3j!|Q9Fle;wVm-O=$EGVzMwK$<3^LdY!{VA5% zd>`ywuF$Pa-m9<+jC-{bP~qD=MS^9;^?>bXKbHsrb0Z@w3yrOQXMC+#I^O6HAcy5* z;PA#l&4nQHXi8L=;+I0E8|GXM2`XH1H#imlEsow4uf+duL5UoP*S@(tL@ux6vzP6$(=t@kC*e2XYUgc zmh-#&J=%9ZGK+E$7wZ=Zl|^F+p!k-p7thDc9vSD+Td}E|du-wJHsuvX%H|x`9W(Hf zuG6OLJ@XB-aU4z}!@2a5=`d2ef-(F?bdp)DMmFd|@@bna^@NW#g`&B;p7JokhWw7S zo~0Or4O`?^FQP7o-j>1+fQgE!zLKY33CeJMt3O5BV5A@?Shy15IP6a!Vj97Xg~P$Y zYY&Lk!tpVSSdFl9$qxQlJm4>;a(T#nZlCU#7)8#jTK0}Zt>5HBsC`7>%w}?l<_Zey zCvNMKm+P@kyKKOQLq*a;83pG$I!TLme*&i@p8SR{b0nDG)aZU%ca0HXE>pREa;5y* zX`P`fq)f76VnlYX*s_fDZg!82x+2xK@~hCk*Mwix2GpeHo7e`Ki;e_#=d3XoYPZyJ z2OX+~2~57!5xj+@bzV`QC)qZNP~y1acPlkf%6XI`I;#+~8O{9{u$ayHZ0Nkby_oUk;akX(3eCH-;7n9^vCUI7Vxm^P z0`aR`2>3qC4s8m3aB#9^@;5IET)$k^$8(>bXO*sK07hBL_+!8tn%gc@_Dq4nF8AGq z5rZ7)9EuRlb7wGn#i&-hs36m7FKgS!<2}8PV*;`7ouE`iv~C$v9q7y>4lu@1(BOzC z(h+$j&_^pB-W`}p( zFc3PC-#x2d>6E}Dl}5m#$|&@SoMb}La@kpaoi$R`1w(T#-2jL-Yu449J6-v`fVXNt zJ3o3v>2ss;6sbl8qNt4dlBwFm=85xWJ}da#ZG5YbRY{RynulCT&sRFu0XyUa$*TM8 z_q~;J!mh^N0n%&BHY$`E*BF*#OfOX)Ee3Z_B7rb4M-dSQ^8C^ofIjVvNb)k(Gw$jMX^CtjL2B z>6UFN^s�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 literal 0 HcmV?d00001 diff --git a/vid-app-common/src/test/resources/vlan-tagging.json b/vid-app-common/src/test/resources/vlan-tagging.json index 454327aa3..6789e646b 100644 --- a/vid-app-common/src/test/resources/vlan-tagging.json +++ b/vid-app-common/src/test/resources/vlan-tagging.json @@ -138,7 +138,7 @@ } }, "networks": {}, - "collectionResource": {}, + "collectionResources": {}, "configurations": {}, "fabricConfigurations": {}, "serviceProxies": {}, @@ -219,4 +219,4 @@ "volumeGroups": {}, "pnfs": {}, "vnfGroups": {} -} \ No newline at end of file +} diff --git a/vid-app-common/src/test/resources/vrf-csar.json b/vid-app-common/src/test/resources/vrf-csar.json new file mode 100644 index 000000000..b1d4e4508 --- /dev/null +++ b/vid-app-common/src/test/resources/vrf-csar.json @@ -0,0 +1,84 @@ +{ + "service":{ + "uuid":"f028b2e2-7080-4b13-91b2-94944d4c42d8", + "invariantUuid":"dfc2c44c-2429-44ca-ae26-1e6dc1f207fb", + "name":"infraVPN", + "version":"1.0", + "toscaModelURL":null, + "category":"Network Service", + "serviceType":"INFRASTRUCTURE-VPN", + "serviceRole":"BONDING", + "description":"ddd", + "serviceEcompNaming":"true", + "instantiationType":"A-La-Carte", + "inputs":{ + + } + }, + "vnfs":{ + + }, + "networks":{ + + }, + "collectionResources": { + }, + "configurations":{ + + }, + "fabricConfigurations":{ + + }, + "serviceProxies":{ + "misvpn_service_proxy 0":{ + "uuid":"35186eb0-e6b6-4fa5-86bb-1501b342a7b1", + "invariantUuid":"73f89e21-b96c-473f-8884-8b93bcbd2f76", + "description":"A Proxy for Service MISVPN_SERVICE", + "name":"MISVPN_SERVICE Service Proxy", + "version":"3.0", + "customizationUuid":"4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923", + "inputs":{ + + }, + "commands":{ + + }, + "properties":{ + "ecomp_generated_naming":"false" + }, + "type":"Service Proxy", + "sourceModelUuid":"d5cc7d15-c842-450e-95ae-2a69e66dd23b", + "sourceModelInvariant":"c126ec86-59fe-48c0-9532-e39a9b3e5272", + "sourceModelName":"MISVPN_SERVICE" + } + }, + "vfModules":{ + }, + "volumeGroups":{ + + }, + "pnfs":{ + + }, + "vnfGroups":{ + + }, + "vrfs":{ + "VRF Entry Configuration 0": { + "uuid": "9cac02be-2489-4374-888d-2863b4511a59", + "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a", + "description": "VRF Entry configuration object", + "name": "VRF Entry Configuration", + "version": "30.0", + "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433", + "inputs": {}, + "commands": {}, + "properties": { + "ecomp_generated_naming": "false", + "role":"INFRASTRUCTURE-CLOUD-VPN", + "type":"VRF-ENTRY" + }, + "type": "Configuration" + } + } +} \ No newline at end of file -- 2.16.6