1 package org.onap.so.openstack.utils;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
6 import java.io.IOException;
7 import java.nio.file.Files;
8 import java.nio.file.Paths;
9 import java.util.HashMap;
13 import org.junit.Test;
14 import org.onap.so.db.catalog.beans.HeatTemplate;
15 import org.onap.so.db.catalog.beans.HeatTemplateParam;
16 import org.skyscreamer.jsonassert.JSONAssert;
18 import com.fasterxml.jackson.core.JsonParseException;
19 import com.fasterxml.jackson.core.type.TypeReference;
20 import com.fasterxml.jackson.databind.JsonMappingException;
21 import com.fasterxml.jackson.databind.JsonNode;
22 import com.fasterxml.jackson.databind.ObjectMapper;
24 public class MsoHeatUtilsUnitTest {
27 private ObjectMapper mapper = new ObjectMapper();
29 public void convertInputMapTest() throws JsonParseException, JsonMappingException, IOException {
30 MsoHeatUtils utils = new MsoHeatUtils();
32 Map<String, Object> input = new HashMap<>();
33 HeatTemplate template = new HeatTemplate();
34 template.setArtifactUuid("my-uuid");
35 Set<HeatTemplateParam> parameters = template.getParameters();
36 HeatTemplateParam paramNum = new HeatTemplateParam();
37 paramNum.setParamType("number");
38 paramNum.setParamName("my-number");
39 input.put("my-number", "3");
41 HeatTemplateParam paramString = new HeatTemplateParam();
42 paramString.setParamType("string");
43 paramString.setParamName("my-string");
44 input.put("my-string", "hello");
46 HeatTemplateParam paramJson = new HeatTemplateParam();
47 paramJson.setParamType("json");
48 paramJson.setParamName("my-json");
50 HeatTemplateParam paramJsonEscaped = new HeatTemplateParam();
51 paramJsonEscaped.setParamType("json");
52 paramJsonEscaped.setParamName("my-json-escaped");
54 Map<String, Object> jsonMap = mapper.readValue(getJson("free-form.json"), new TypeReference<Map<String, Object>>(){});
55 input.put("my-json", jsonMap);
57 input.put("my-json-escaped", getJson("free-form.json"));
59 parameters.add(paramNum);
60 parameters.add(paramString);
61 parameters.add(paramJson);
62 parameters.add(paramJsonEscaped);
64 Map<String, Object> output = utils.convertInputMap(input, template);
66 assertEquals(3, output.get("my-number"));
67 assertEquals("hello", output.get("my-string"));
68 assertTrue("expect no change in type", output.get("my-json") instanceof Map);
69 assertTrue("expect string to become jsonNode", output.get("my-json-escaped") instanceof JsonNode);
71 JSONAssert.assertEquals(getJson("free-form.json"), mapper.writeValueAsString(output.get("my-json-escaped")), false);
75 private String getJson(String filename) throws IOException {
76 return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/MsoHeatUtils/" + filename)));