Merge "Add JUnit code coverage for InstanceResourceList:"
authorLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Tue, 2 Jun 2020 12:32:40 +0000 (12:32 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 2 Jun 2020 12:32:40 +0000 (12:32 +0000)
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/InstanceResourceList.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java
bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json

index 3a4df68..963210b 100644 (file)
@@ -109,16 +109,20 @@ public class InstanceResourceList {
         }
 
         // check if the resource contains vf-module
-        if (vnfResource != null && vnfResource.getVfModules() != null) {
+        if (isVnfResourceWithVfModule(vnfResource)) {
             sequencedResourceList.addAll(vnfResource.getVfModules());
         }
 
         return sequencedResourceList;
     }
 
+    private static boolean isVnfResourceWithVfModule(VnfResource vnfResource) {
+        return vnfResource != null && vnfResource.getVfModules() != null;
+    }
+
     private static List<Resource> getGroupResourceInstanceList(VnfResource vnfResource, JsonObject vfObj) {
         List<Resource> sequencedResourceList = new ArrayList<>();
-        if (vnfResource.getGroupOrder() != null && !StringUtils.isEmpty(vnfResource.getGroupOrder())) {
+        if (isVnfGroupOrderFilled(vnfResource)) {
             String[] grpSequence = vnfResource.getGroupOrder().split(",");
             for (String grpType : grpSequence) {
                 for (GroupResource gResource : vnfResource.getGroups()) {
@@ -150,4 +154,8 @@ public class InstanceResourceList {
         }
         return sequencedResourceList;
     }
+
+    private static boolean isVnfGroupOrderFilled(VnfResource vnfResource) {
+        return vnfResource.getGroupOrder() != null && !StringUtils.isEmpty(vnfResource.getGroupOrder());
+    }
 }
index f3233f2..19e678d 100644 (file)
@@ -8,6 +8,7 @@ import org.onap.so.bpmn.core.domain.Resource;
 import org.onap.so.bpmn.core.domain.ResourceType;
 import org.onap.so.bpmn.core.domain.VnfResource;
 import org.onap.so.bpmn.core.domain.VnfcResource;
+import org.onap.so.bpmn.core.domain.ModuleResource;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -24,7 +25,7 @@ public class InstnaceResourceListTest {
         String uuiRequest = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "InstanceResourceList" + ".json")));
         List<Resource> instanceResourceList =
                 InstanceResourceList.getInstanceResourceList(createResourceSequence(), uuiRequest);
-        Assert.assertEquals(7, instanceResourceList.size());
+        Assert.assertEquals(9, instanceResourceList.size());
         Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
         Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(1).getResourceType());
         Assert.assertEquals("device", instanceResourceList.get(1).getModelInfo().getModelName());
@@ -32,9 +33,12 @@ public class InstnaceResourceListTest {
         Assert.assertEquals("sitewan", instanceResourceList.get(2).getModelInfo().getModelName());
         Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(3).getResourceType());
         Assert.assertEquals("sitewan", instanceResourceList.get(3).getModelInfo().getModelName());
-        Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(4).getResourceType());
-        Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(5).getResourceType());
+        Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(4).getResourceType());
+        Assert.assertEquals("dummy", instanceResourceList.get(4).getModelInfo().getModelName());
+        Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(5).getResourceType());
         Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(6).getResourceType());
+        Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(7).getResourceType());
+        Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(8).getResourceType());
     }
 
     // Test when PK is empty
@@ -48,6 +52,63 @@ public class InstnaceResourceListTest {
         Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
     }
 
+    @Test
+    public void testSimpleVFResourceWithGroup() throws IOException {
+        String uuiRequest = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "InstanceResourceList" + ".json")));
+        VnfResource vnfResource = new VnfResource();
+        vnfResource.setResourceInput("{\"a\":\"ipaddress|127.0.0.1\"}");
+
+        createGroupKeyResource(vnfResource);
+
+        List<Resource> instanceResourceList = InstanceResourceList.getInstanceResourceList(vnfResource, uuiRequest);
+        Assert.assertEquals(2, instanceResourceList.size());
+        Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
+        Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(1).getResourceType());
+        Assert.assertEquals("wan", instanceResourceList.get(1).getModelInfo().getModelName());
+    }
+
+    @Test
+    public void testVFResourceWithEmptyGroup() throws IOException {
+        String uuiRequest = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "InstanceResourceList" + ".json")));
+        VnfResource vnfResource = new VnfResource();
+        vnfResource.setResourceInput("{\"a\":\"[emptygroup_list2,INDEX,name]\"}");
+
+        List<Resource> instanceResourceList = InstanceResourceList.getInstanceResourceList(vnfResource, uuiRequest);
+        Assert.assertEquals(1, instanceResourceList.size());
+        Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
+    }
+
+    @Test
+    public void testVFResourceWithModule() throws IOException {
+        String uuiRequest = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "InstanceResourceList" + ".json")));
+        VnfResource vnfResource = new VnfResource();
+        vnfResource.setResourceInput("{\"a\":\"ipaddress|127.0.0.1\"}");
+
+        // Come from package org.onap.so.bpmn.core.domain.VnfResourceTest
+        List<ModuleResource> moduleResources;
+        moduleResources = new ArrayList<>();
+        ModuleResource moduleresource = getModuleResource();
+        moduleResources.add(moduleresource);
+        vnfResource.setModules(moduleResources);
+
+        List<Resource> instanceResourceList = InstanceResourceList.getInstanceResourceList(vnfResource, uuiRequest);
+        Assert.assertEquals(2, instanceResourceList.size());
+        Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
+        Assert.assertEquals(ResourceType.MODULE, instanceResourceList.get(1).getResourceType());
+    }
+
+    private ModuleResource getModuleResource() {
+        ModuleResource moduleresource = new ModuleResource();
+        moduleresource.setVfModuleName("vfModuleName");
+        moduleresource.setHeatStackId("heatStackId");
+        moduleresource.setIsBase(true);
+        moduleresource.setVfModuleLabel("vfModuleLabel");
+        moduleresource.setInitialCount(0);
+        moduleresource.setVfModuleType("vfModuleType");
+        moduleresource.setHasVolumeGroup(true);
+        return moduleresource;
+    }
+
     // Test when PK is not empty and PK does not contain any groups
     @Test
     public void testVFWithEmptyGroupResource() throws IOException {
@@ -66,16 +127,7 @@ public class InstnaceResourceListTest {
         VnfResource vnfResource = new VnfResource();
         vnfResource.setResourceInput("{\"a\":\"[emptygroup_list,INDEX,name]\"}");
 
-        VnfcResource vnfcResource = new VnfcResource();
-        vnfcResource.setResourceInput("{\"a\":\"test|default_value\"}");
-        GroupResource groupResource = new GroupResource();
-        groupResource.setVnfcs(Arrays.asList(vnfcResource));
-        ModelInfo wanModel = new ModelInfo();
-        wanModel.setModelName("wan");
-        groupResource.setModelInfo(wanModel);
-
-        vnfResource.setGroupOrder("wan");
-        vnfResource.setGroups(Arrays.asList(groupResource));
+        createGroupKeyResource(vnfResource);
 
         List<Resource> instanceResourceList = InstanceResourceList.getInstanceResourceList(vnfResource, uuiRequest);
         Assert.assertEquals(2, instanceResourceList.size());
@@ -84,29 +136,34 @@ public class InstnaceResourceListTest {
         Assert.assertEquals("wan", instanceResourceList.get(1).getModelInfo().getModelName());
     }
 
+    private void createGroupKeyResource(VnfResource vnfResource) {
+        GroupResource groupResource = prepareGroupResource("{\"a\":\"test|default_value\"}", "wan");
+
+        vnfResource.setGroupOrder("wan");
+        vnfResource.setGroups(Arrays.asList(groupResource));
+    }
+
     private VnfResource createResourceSequence() {
         VnfResource vnfResource = new VnfResource();
         vnfResource.setResourceInput("{\"a\":\"[sdwansiteresource_list,INDEX,sdwansiteresource_list]\"}");
 
-        VnfcResource vnfcResource = new VnfcResource();
-        vnfcResource.setResourceInput("{\"a\":\"[sdwansitewan_list,INDEX,test]\"}");
+        GroupResource groupResource = prepareGroupResource("{\"a\":\"[sdwansitewan_list,INDEX,test]\"}", "sitewan");
+        GroupResource groupResource2 = prepareGroupResource("{\"a\":\"[sdwandevice_list,INDEX,test]\"}", "device");
+        GroupResource groupDummyResource = prepareGroupResource("{\"a\":\"[dummy,INDEX,test]\"}", "dummy");
 
-        GroupResource groupResource = new GroupResource();
-        groupResource.setVnfcs(Arrays.asList(vnfcResource));
-        ModelInfo wanModel = new ModelInfo();
-        wanModel.setModelName("sitewan");
-        groupResource.setModelInfo(wanModel);
+        vnfResource.setGroupOrder("device,sitewan,dummy");
+        vnfResource.setGroups(Arrays.asList(groupResource, groupResource2, groupDummyResource));
+        return vnfResource;
+    }
 
+    private GroupResource prepareGroupResource(String sourceInput, String modelName) {
         VnfcResource vnfcDeviceResource = new VnfcResource();
-        vnfcDeviceResource.setResourceInput("{\"a\":\"[sdwandevice_list,INDEX,test]\"}");
-        GroupResource groupResource2 = new GroupResource();
-        groupResource2.setVnfcs(Arrays.asList(vnfcDeviceResource));
+        vnfcDeviceResource.setResourceInput(sourceInput);
+        GroupResource groupResource = new GroupResource();
+        groupResource.setVnfcs(Arrays.asList(vnfcDeviceResource));
         ModelInfo deviceModel = new ModelInfo();
-        deviceModel.setModelName("device");
-        groupResource2.setModelInfo(deviceModel);
-
-        vnfResource.setGroupOrder("device,sitewan");
-        vnfResource.setGroups(Arrays.asList(groupResource, groupResource2));
-        return vnfResource;
+        deviceModel.setModelName(modelName);
+        groupResource.setModelInfo(deviceModel);
+        return groupResource;
     }
 }
index a111ae2..cf0f2d1 100644 (file)
@@ -79,6 +79,9 @@
             "deviceName":"vCPE",
             "portNumer":"0/0/1"
           }
+        ],
+        "emptygroup_list2": [
+
         ],
         "sdwanvpnresource_list":[
           {
                 "class":"VNF",
                 "systemIp":"20.20.20.1"
               }
-            ]
+            ],
+            "dummy":""
           },
           {
             "sdwansite_emails":"chenchuanyu@huawei.com",
                 "class":"PNF",
                 "systemIp":"20.20.20.2"
               }
-            ]
+            ],
+            "dummy":""
           }
         ]
       }