SDC distribution failure fix 81/21181/1
authorTal Gitelman <tg851x@intl.att.com>
Sun, 29 Oct 2017 18:54:56 +0000 (20:54 +0200)
committerTal Gitelman <tg851x@intl.att.com>
Sun, 29 Oct 2017 18:54:56 +0000 (20:54 +0200)
Change-Id: I508c5458afc00e57a8de517f96ec64077d660477
Issue-ID: SDC-533
Signed-off-by: Tal Gitelman <tg851x@intl.att.com>
catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java

index 68adbd5..22f6730 100644 (file)
 
 package org.openecomp.sdc.be.tosca;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParser;
-import com.google.gson.stream.JsonReader;
-import fj.data.Either;
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.commons.lang3.StringUtils;
 import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
 import org.openecomp.sdc.be.model.Component;
@@ -41,10 +41,12 @@ import org.openecomp.sdc.be.tosca.model.ToscaProperty;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
+import com.google.gson.stream.JsonReader;
+
+import fj.data.Either;
 
 public class PropertyConvertor {
        private static PropertyConvertor instance;
@@ -72,12 +74,8 @@ public class PropertyConvertor {
 
                                // take only the properties of this resource
                                props.stream().filter(p -> p.getOwnerId() == null || p.getOwnerId().equals(component.getUniqueId())).forEach(property -> {
-                                       ToscaProperty prop = convertProperty(dataTypes, property, false);
-
-                                       if (prop != null) {
-                                           properties.put(property.getName(), prop);
-                    }
-                               });
+                    properties.put(property.getName(), convertProperty(dataTypes, property, false));
+                               });
                                if (!properties.isEmpty()) {
                                        toscaNodeType.setProperties(properties);
                                }
@@ -99,10 +97,9 @@ public class PropertyConvertor {
                        prop.setEntry_schema(eschema);
                }
                log.trace("try to convert property {} from type {} with default value [{}]", property.getName(), property.getType(), property.getDefaultValue());
-               prop.setDefaultp(convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes));
-               
-               if (prop.getDefaultp() == null) {
-                   return null;
+        Object convertedObj = convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes);
+        if (convertedObj != null) {
+            prop.setDefaultp(convertedObj);
         }
                prop.setType(property.getType());
         prop.setDescription(property.getDescription());
@@ -111,6 +108,7 @@ public class PropertyConvertor {
             prop.setRequired(property.isRequired());
         }
         return prop;
+
        }
 
        public Object convertToToscaObject(String propertyType, String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
@@ -120,7 +118,6 @@ public class PropertyConvertor {
                        if(StringUtils.isEmpty(value)){
                                return null;
                        }
-
                }
                try {
                        ToscaMapValueConverter mapConverterInst = ToscaMapValueConverter.getInstance();
index a987e02..c77c0f1 100644 (file)
@@ -7,6 +7,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -37,7 +38,9 @@ public class PropertyConvertorTest {
 
     @Test
     public void convertPropertyWhenValueAndDefaultNull() {
-        assertNull(PropertyConvertor.getInstance().convertProperty(dataTypes, property, false));
+        ToscaProperty prop = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
+        assertNotNull(prop);
+        assertNull(prop.getDefaultp());
     }
 
     @Test
@@ -63,7 +66,15 @@ public class PropertyConvertorTest {
         resource.setProperties(properties);
         Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
         assertTrue(result.isLeft());
-        assertEquals(1, result.left().value().getProperties().size());
+        assertEquals(2, result.left().value().getProperties().size());
+        int cnt = 0;
+        for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
+            ToscaProperty prop = it.next();
+            if (prop.getDefaultp() == null) {
+                cnt++;
+            }
+        }
+        assertEquals(1, cnt);
     }
 
     @Test
@@ -82,6 +93,10 @@ public class PropertyConvertorTest {
         Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
         assertTrue(result.isLeft());
         assertEquals(2, result.left().value().getProperties().size());
+        for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
+            ToscaProperty prop = it.next();
+            assertNotNull(prop.getDefaultp());
+        }
     }
 
     @Test
@@ -97,6 +112,10 @@ public class PropertyConvertorTest {
         resource.setProperties(properties);
         Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
         assertTrue(result.isLeft());
-        assertNull(result.left().value().getProperties());
-    }
-}
\ No newline at end of file
+        assertEquals(2, result.left().value().getProperties().size());
+        for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
+            ToscaProperty prop = it.next();
+            assertNull(prop.getDefaultp());
+        }
+     }
+}