Merge "updated bbinput setup to pull vf if no vnf found"
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
index f0954c3..e686fc2 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
@@ -631,18 +631,21 @@
                 break;
             }
         }
+        VfModuleCustomization vfResourceCustomization = null;
         if (vnfResourceCustomization != null) {
-            VfModuleCustomization vfResourceCustomization = vnfResourceCustomization.getVfModuleCustomizations()
-                    .stream() // Convert to steam
+            vfResourceCustomization = vnfResourceCustomization.getVfModuleCustomizations().stream() // Convert to steam
                     .filter(x -> modelInfo.getModelCustomizationId().equalsIgnoreCase(x.getModelCustomizationUUID()))// find
                     // what
                     // we
                     // want
                     .findAny() // If 'findAny' then return found
                     .orElse(null);
-            if (vfResourceCustomization != null) {
-                vfModule.setModelInfoVfModule(this.mapperLayer.mapCatalogVfModuleToVfModule(vfResourceCustomization));
-            }
+        } else {
+            vfResourceCustomization = bbInputSetupUtils
+                    .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
+        }
+        if (vfResourceCustomization != null) {
+            vfModule.setModelInfoVfModule(this.mapperLayer.mapCatalogVfModuleToVfModule(vfResourceCustomization));
         }
     }
 
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
index df7337c..21b0d83 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java
@@ -2947,6 +2947,32 @@
     }
 
     @Test
+    public void testMapCatalogVfModuleIfNoVnf() {
+        String vnfModelCustomizationUUID = "vnfResourceCustUUID";
+        String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
+        VfModule vfModule = new VfModule();
+        ModelInfo modelInfo = new ModelInfo();
+        modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
+        Service service = new Service();
+        VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
+        vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
+        VfModuleCustomization vfModuleCust = new VfModuleCustomization();
+        vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
+        vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
+        ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
+        doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
+                .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
+        doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
+
+        SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
+
+        assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
+
+        verify(SPY_bbInputSetupUtils, times(1))
+                .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
+    }
+
+    @Test
     public void testPopulateVfModule() throws Exception {
         String vnfId = "vnfId";
         String vfModuleId = "vfModuleId";