unit tests - catalog-model 62/94762/2
authorTomasz Golabek <tomasz.golabek@nokia.com>
Mon, 2 Sep 2019 14:05:21 +0000 (16:05 +0200)
committerPiotr Darosz <piotr.darosz@nokia.com>
Mon, 2 Sep 2019 14:52:32 +0000 (14:52 +0000)
Additional junit tests for ToscaListValueConverter

Change-Id: I41e8b501129ceb0640e54e4173b3cdf13983ccd8
Issue-ID: SDC-2326
Signed-off-by: Tomasz Golabek <tomasz.golabek@nokia.com>
catalog-model/src/test/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverterTest.java

index 7c215e9..58f56a0 100644 (file)
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
+ * Modifications copyright (c) 2019 Nokia
+ * ================================================================================
  */
-
 package org.openecomp.sdc.be.model.tosca.converters;
 
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.PropertyDefinition;
 
 public class ToscaListValueConverterTest {
 
-       private ToscaListValueConverter createTestSubject() {
-               return  ToscaListValueConverter.getInstance();
-       }
+    private static final String DOUBLE = "double";
+    private static final String STRING = "string";
+    private static final String TEST_1 = "test1";
+    private static final String FLOAT = "float";
+    private static final String INTEGER = "integer";
+
+    private ToscaListValueConverter createTestSubject() {
+        return ToscaListValueConverter.getInstance();
+    }
+
+    @Test
+    public void testGetInstance() {
+        ToscaListValueConverter result = createTestSubject();
+        assertNotNull(result);
+    }
+
+    @Test
+    public void shouldConvertToNullWhenValueIsNull() {
+        ToscaListValueConverter converter = createTestSubject();
+        String innerType = "";
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        Object result = converter.convertToToscaValue(null, innerType, dataTypes);
+        assertNull(result);
+    }
+
+    @Test
+    public void shouldConvertToNullWhenValueIsEmpty() {
+        ToscaListValueConverter converter = createTestSubject();
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        Object result = converter.convertToToscaValue("", STRING, dataTypes);
+        assertNull(result);
+    }
+
+    @Test
+    public void shouldConvertToNullWhenValueIsInvalid() {
+        ToscaListValueConverter converter = createTestSubject();
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        Object result = converter.convertToToscaValue("{ \" not a json \" ", STRING, dataTypes);
+        assertNull(result);
+    }
+
+    @Test
+    public void shouldConvertToNullWithNonStandardScalarType() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "";
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
+        dataTypeDefinition.setName(FLOAT);
+        dataTypes.put(DOUBLE, dataTypeDefinition);
+        Object result = converter.convertToToscaValue(value, DOUBLE, dataTypes);
+        assertNull(result);
+    }
+
+    @Test
+    public void shouldConvertToNullWithNonStandardNonScalarType() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "";
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        dataTypes.put(DOUBLE, new DataTypeDefinition());
+        Object result = converter.convertToToscaValue(value, DOUBLE, dataTypes);
+        assertNull(result);
+    }
+
+    @Test
+    public void shouldConvertToValueWithNullDataTypeDefinition() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "VALUE";
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        Object result = converter.convertToToscaValue(value, DOUBLE, dataTypes);
+        assertEquals(result, value);
+    }
+
+    @Test
+    @SuppressWarnings("unchecked")
+    public void shouldConvertComplexJsonArray() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "{ \"test1\": [1, 2] }";
+        Object result = converter.convertToToscaValue(value, INTEGER, new HashMap<>());
+        HashMap<String, ArrayList<Integer>> mappedResult = (HashMap<String, ArrayList<Integer>>) result;
+        assertEquals(mappedResult.get(TEST_1).get(0), Integer.valueOf(1));
+        assertEquals(mappedResult.get(TEST_1).get(1), Integer.valueOf(2));
+    }
+
+    @Test
+    @SuppressWarnings("unchecked")
+    public void shouldConvertSimpleJsonArray() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "[1, 2]";
+        Object result = converter.convertToToscaValue(value, INTEGER, new HashMap<>());
+        ArrayList<Integer> mappedResult = (ArrayList<Integer>) result;
+        assertEquals(mappedResult.get(0), Integer.valueOf(1));
+        assertEquals(mappedResult.get(1), Integer.valueOf(2));
+    }
 
-       
-       @Test
-       public void testGetInstance() throws Exception {
-               ToscaListValueConverter result;
+    @Test
+    @SuppressWarnings("unchecked")
+    public void shouldConvertSimpleJsonArrayWithComplexChild() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "[{\"test1\": 1}, {\"test1\": 2}]";
+        Object result = converter.convertToToscaValue(value, INTEGER, new HashMap<>());
+        ArrayList<HashMap<String, Integer>> mappedResult = (ArrayList<HashMap<String, Integer>>) result;
+        assertEquals(mappedResult.get(0).get(TEST_1), Integer.valueOf(1));
+        assertEquals(mappedResult.get(1).get(TEST_1), Integer.valueOf(2));
+    }
 
-               // default test
-               result = ToscaListValueConverter.getInstance();
-       }
+    @Test
+    @SuppressWarnings("unchecked")
+    public void shouldConvertSimpleJsonArrayWithComplexChildNonScalarTypeAndNullPropertyType() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "[{\"test1\": 1}, {\"test1\": 2}]";
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
+        List<PropertyDefinition> props = new ArrayList<>();
+        PropertyDefinition propertyDefinition = new PropertyDefinition();
+        props.add(propertyDefinition);
+        propertyDefinition.setName(TEST_1);
+        dataTypeDefinition.setProperties(props);
+        dataTypes.put(DOUBLE, dataTypeDefinition);
+        Object result = converter.convertToToscaValue(value, DOUBLE, dataTypes);
+        ArrayList<HashMap<String, String>> mappedResult = (ArrayList<HashMap<String, String>>) result;
+        assertEquals(mappedResult.get(0).get(TEST_1), "1");
+        assertEquals(mappedResult.get(1).get(TEST_1), "2");
+    }
 
-       
+    @Test
+    @SuppressWarnings("unchecked")
+    public void shouldConvertSimpleJsonArrayWithComplexChildNonScalarTypeAndNonNullPropertyType() {
+        ToscaListValueConverter converter = createTestSubject();
+        String value = "[{\"test1\": 1}, {\"test1\": 2}]";
+        Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
+        DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
+        List<PropertyDefinition> props = new ArrayList<>();
+        PropertyDefinition propertyDefinition = new PropertyDefinition();
+        props.add(propertyDefinition);
+        propertyDefinition.setName(TEST_1);
+        propertyDefinition.setType(FLOAT);
+        dataTypeDefinition.setProperties(props);
+        dataTypes.put(DOUBLE, dataTypeDefinition);
+        Object result = converter.convertToToscaValue(value, DOUBLE, dataTypes);
+        ArrayList<HashMap<String, Double>> mappedResult = (ArrayList<HashMap<String, Double>>) result;
+        assertEquals(mappedResult.get(0).get(TEST_1), Double.valueOf(1.0));
+        assertEquals(mappedResult.get(1).get(TEST_1), Double.valueOf(2.0));
+    }
 
 }