From 51e1e5e941e5fb01cc684e5827b6c36029e30335 Mon Sep 17 00:00:00 2001 From: Tomasz Golabek Date: Mon, 2 Sep 2019 16:05:21 +0200 Subject: unit tests - catalog-model Additional junit tests for ToscaListValueConverter Change-Id: I41e8b501129ceb0640e54e4173b3cdf13983ccd8 Issue-ID: SDC-2326 Signed-off-by: Tomasz Golabek --- .../converters/ToscaListValueConverterTest.java | 169 +++++++++++++++++++-- 1 file changed, 154 insertions(+), 15 deletions(-) diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverterTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverterTest.java index 7c215e977a..58f56a011e 100644 --- a/catalog-model/src/test/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverterTest.java +++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverterTest.java @@ -7,37 +7,176 @@ * 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 dataTypes = new HashMap<>(); + Object result = converter.convertToToscaValue(null, innerType, dataTypes); + assertNull(result); + } + + @Test + public void shouldConvertToNullWhenValueIsEmpty() { + ToscaListValueConverter converter = createTestSubject(); + Map dataTypes = new HashMap<>(); + Object result = converter.convertToToscaValue("", STRING, dataTypes); + assertNull(result); + } + + @Test + public void shouldConvertToNullWhenValueIsInvalid() { + ToscaListValueConverter converter = createTestSubject(); + Map dataTypes = new HashMap<>(); + Object result = converter.convertToToscaValue("{ \" not a json \" ", STRING, dataTypes); + assertNull(result); + } + + @Test + public void shouldConvertToNullWithNonStandardScalarType() { + ToscaListValueConverter converter = createTestSubject(); + String value = ""; + Map 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 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 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> mappedResult = (HashMap>) 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 mappedResult = (ArrayList) 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> mappedResult = (ArrayList>) 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 dataTypes = new HashMap<>(); + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + List 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> mappedResult = (ArrayList>) 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 dataTypes = new HashMap<>(); + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + List 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> mappedResult = (ArrayList>) result; + assertEquals(mappedResult.get(0).get(TEST_1), Double.valueOf(1.0)); + assertEquals(mappedResult.get(1).get(TEST_1), Double.valueOf(2.0)); + } } -- cgit 1.2.3-korg