Empty node filter is removed when no filter is added 92/130192/5
authorimamSidero <imam.hussain@est.tech>
Fri, 5 Aug 2022 09:43:18 +0000 (10:43 +0100)
committerMichael Morris <michael.morris@est.tech>
Thu, 11 Aug 2022 14:10:16 +0000 (14:10 +0000)
Null and empty check is added before adding a node filter object

Signed-off-by: Imam hussain <imam.hussain@est.tech>
Issue-ID: SDC-4124
Change-Id: I1e1e992881cd51dff209bac0111a472793dd41d1

catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java
catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/NodeFilter.java
catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/NodeFilterTest.java

index a8aa6b3..9591e6b 100644 (file)
@@ -937,8 +937,10 @@ public class ToscaExportHandler {
             }
             nodeTemplate.setType(componentInstance.getToscaComponentName());
             nodeTemplate.setDirectives(componentInstance.getDirectives());
-            nodeTemplate.setNode_filter(convertToNodeTemplateNodeFilterComponent(componentInstance.getNodeFilter()));
-
+            NodeFilter nodeFilter = convertToNodeTemplateNodeFilterComponent(componentInstance.getNodeFilter());
+            if(nodeFilter != null && nodeFilter.hasData()){
+                nodeTemplate.setNode_filter(nodeFilter);
+            }
             final Either<Component, Boolean> originComponentRes = capabilityRequirementConverter
                 .getOriginComponent(componentCache, componentInstance);
             if (originComponentRes.isRight()) {
index 6cad788..ba93e09 100644 (file)
@@ -17,6 +17,9 @@ package org.openecomp.sdc.be.tosca.model;
 
 import java.util.List;
 import java.util.Map;
+
+import org.apache.commons.collections.CollectionUtils;
+
 import lombok.Getter;
 import lombok.Setter;
 
@@ -27,4 +30,8 @@ public class NodeFilter {
     private Object tosca_id;
     private List<Map<String, List<Object>>> properties;
     private List<Map<String, CapabilityFilter>> capabilities;
+    
+    public boolean hasData() {
+        return CollectionUtils.isNotEmpty(properties) || CollectionUtils.isNotEmpty(capabilities);
+    }
 }
index 72fcf5f..84732e2 100644 (file)
 
 package org.openecomp.sdc.be.tosca.model;
 
-import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor;
-import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters;
-import static org.hamcrest.MatcherAssert.assertThat;
+import org.junit.jupiter.api.Test;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 
 public class NodeFilterTest {
+
+    private void createCapabilities(NodeFilter nodeFilter) {
+        List<Map<String, CapabilityFilter>> capabilitiesCopy = new ArrayList<>();
+        Map<String, CapabilityFilter> capabilityDataMap = new HashMap<>();
+        CapabilityFilter capabilityFilter = new CapabilityFilter();
+        capabilityDataMap.put("test", capabilityFilter);
+        capabilitiesCopy.add(capabilityDataMap);
+        nodeFilter.setCapabilities(capabilitiesCopy);
+    }
+
+    private void createProperties(NodeFilter nodeFilter) {
+        List<Map<String, List<Object>>> propertiesCopy = new ArrayList<>();
+        Map<String, List<Object>> propertyDataMap = new HashMap<>();
+        List<Object> dataObjectList = new ArrayList<>();
+        Object object = new Object();
+        dataObjectList.add(object);
+        propertyDataMap.put("test", dataObjectList);
+        propertiesCopy.add(propertyDataMap);
+        nodeFilter.setProperties(propertiesCopy);
+    }
+
+    @Test
+    public void testHasDataTrue() {
+        NodeFilter nodeFilter = new NodeFilter();
+        createCapabilities(nodeFilter);
+        createProperties(nodeFilter);
+        boolean result = nodeFilter.hasData();
+        assertTrue(result);
+    }
+
+    @Test
+    public void testHasDataCapabilityTrue() {
+        NodeFilter nodeFilter = new NodeFilter();
+        createCapabilities(nodeFilter);
+        boolean result = nodeFilter.hasData();
+        assertTrue(result);
+    }
+
     @Test
-    public void testDefaultCtor() {
-        assertThat(NodeFilter.class, hasValidBeanConstructor());
+    public void testHasDataPropertiesTrue() {
+        NodeFilter nodeFilter = new NodeFilter();
+        createProperties(nodeFilter);
+        boolean result = nodeFilter.hasData();
+        assertTrue(result);
     }
 
     @Test
-    public void testGettersSetters() {
-        assertThat(NodeFilter.class, hasValidGettersAndSetters());
+    public void testHasDataFalse() {
+        NodeFilter nodeFilter = new NodeFilter();
+        boolean result = nodeFilter.hasData();
+        assertFalse(result);
     }
 }
\ No newline at end of file