2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.model.tosca.converters;
23 import static org.junit.jupiter.api.Assertions.assertEquals;
24 import static org.junit.jupiter.api.Assertions.assertFalse;
25 import static org.junit.jupiter.api.Assertions.assertNull;
26 import static org.junit.jupiter.api.Assertions.assertTrue;
28 import com.google.gson.JsonArray;
29 import com.google.gson.JsonObject;
30 import com.google.gson.JsonPrimitive;
31 import java.util.HashMap;
32 import java.util.LinkedList;
33 import java.util.List;
35 import org.junit.jupiter.api.Test;
38 class ToscaValueBaseConverterTest {
40 private final ToscaValueBaseConverter converter = new ToscaValueBaseConverter();
43 void testJson2JavaPrimitive() {
44 JsonPrimitive prim1 = new JsonPrimitive(Boolean.FALSE);
45 Object res1 = converter.json2JavaPrimitive(prim1);
46 assertFalse((Boolean)res1);
48 JsonPrimitive prim2 = new JsonPrimitive("Test");
49 Object res2 = converter.json2JavaPrimitive(prim2);
50 assertEquals("Test", res2);
52 JsonPrimitive prim3 = new JsonPrimitive(3);
53 Object res3 = converter.json2JavaPrimitive(prim3);
54 assertEquals(3, (int) (Integer) res3);
56 JsonPrimitive prim4 = new JsonPrimitive(3.6);
57 Object res4 = converter.json2JavaPrimitive(prim4);
58 assertEquals(3.6, (Double) res4);
62 void testIsEmptyObjectValue() {
63 boolean res1 = ToscaValueBaseConverter.isEmptyObjectValue(null);
66 boolean res2 = ToscaValueBaseConverter.isEmptyObjectValue("");
69 boolean res3 = ToscaValueBaseConverter.isEmptyObjectValue(new HashMap<>());
72 boolean res4 = ToscaValueBaseConverter.isEmptyObjectValue(new LinkedList<>());
75 boolean res5 = ToscaValueBaseConverter.isEmptyObjectValue("test");
80 void testHandleComplexJsonValue() {
81 JsonObject innerObject = new JsonObject();
82 innerObject.addProperty("string", "stringValue");
83 innerObject.addProperty("int", 1);
84 innerObject.addProperty("float", 1.1);
85 innerObject.add("null", null);
87 JsonArray jsonArray1 = new JsonArray();
88 jsonArray1.add(innerObject);
89 jsonArray1.add(innerObject);
90 jsonArray1.add(innerObject);
92 JsonArray jsonArray2 = new JsonArray();
93 jsonArray2.add("value0");
94 jsonArray2.add("value1");
95 jsonArray2.add("value2");
97 JsonObject jsonObject = new JsonObject();
98 jsonObject.add("objectProperty", innerObject);
99 jsonObject.add("arrayProperty1", jsonArray1);
100 jsonObject.add("arrayProperty2", jsonArray2);
101 jsonObject.addProperty("stringProperty", "stringPropertyValue");
103 final Object resultingObject = converter.handleComplexJsonValue(jsonObject);
104 assertTrue(resultingObject instanceof Map);
105 final Map<String, Object> jsonObjectAsMap = (Map<String, Object>) resultingObject;
106 assertEquals(4, jsonObjectAsMap.keySet().size());
107 assertTrue(jsonObjectAsMap.containsKey("objectProperty"));
108 assertTrue(jsonObjectAsMap.containsKey("arrayProperty1"));
109 assertTrue(jsonObjectAsMap.containsKey("arrayProperty2"));
110 assertTrue(jsonObjectAsMap.containsKey("stringProperty"));
112 final String stringProperty = (String) jsonObjectAsMap.get("stringProperty");
113 assertEquals(jsonObject.get("stringProperty").getAsString(), stringProperty);
115 final Object arrayProperty1 = jsonObjectAsMap.get("arrayProperty1");
116 assertTrue(arrayProperty1 instanceof List);
117 final List<Object> arrayProperty1AsList = (List<Object>) arrayProperty1;
118 assertEquals(3, arrayProperty1AsList.size());
119 for (int i = 0; i < arrayProperty1AsList.size(); i++) {
120 final Object actualElement = arrayProperty1AsList.get(i);
121 assertTrue(actualElement instanceof Map);
122 final Map<String, Object> actualElementAsMap = (Map<String, Object>) actualElement;
123 final JsonObject expectedJsonObject = jsonArray1.get(i).getAsJsonObject();
124 assertEquals(expectedJsonObject.get("string").getAsString(), actualElementAsMap.get("string"));
125 assertEquals(expectedJsonObject.get("int").getAsInt(), actualElementAsMap.get("int"));
126 assertEquals(expectedJsonObject.get("float").getAsDouble(), actualElementAsMap.get("float"));
127 assertNull(actualElementAsMap.get("null"));
130 final Object arrayProperty2 = jsonObjectAsMap.get("arrayProperty2");
131 assertTrue(arrayProperty2 instanceof List);
132 final List<String> arrayProperty2AsList = (List<String>) arrayProperty2;
133 assertEquals(3, arrayProperty2AsList.size());
134 for (int i = 0; i < arrayProperty2AsList.size(); i++) {
135 assertEquals("value" + i, arrayProperty2AsList.get(i));
138 final Object objectProperty = jsonObjectAsMap.get("objectProperty");
139 assertTrue(objectProperty instanceof Map);
140 final Map<String, Object> objectPropertyAsMap = (Map<String, Object>) objectProperty;
141 assertEquals(4, objectPropertyAsMap.keySet().size());
142 assertTrue(objectPropertyAsMap.containsKey("string"));
143 assertEquals(innerObject.get("string").getAsString(), objectPropertyAsMap.get("string"));
144 assertEquals(innerObject.get("int").getAsInt(), objectPropertyAsMap.get("int"));
145 assertEquals(innerObject.get("float").getAsDouble(), objectPropertyAsMap.get("float"));
146 assertNull(objectPropertyAsMap.get("null"));