66d6f59e7976d3175607aad15de5f8c48ea62adb
[so.git] / adapters / mso-adapter-utils / src / test / java / org / onap / so / openstack / utils / MsoHeatUtilsUnitTest.java
1 package org.onap.so.openstack.utils;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
5
6 import java.io.IOException;
7 import java.nio.file.Files;
8 import java.nio.file.Paths;
9 import java.util.HashMap;
10 import java.util.Map;
11 import java.util.Set;
12
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;
17
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;
23
24 public class MsoHeatUtilsUnitTest {
25
26         
27         private ObjectMapper mapper = new ObjectMapper();
28         @Test
29         public void convertInputMapTest() throws JsonParseException, JsonMappingException, IOException {
30                 MsoHeatUtils utils = new MsoHeatUtils();
31                 
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");
40                 
41                 HeatTemplateParam paramString = new HeatTemplateParam();
42                 paramString.setParamType("string");
43                 paramString.setParamName("my-string");
44                 input.put("my-string", "hello");
45                 
46                 HeatTemplateParam paramJson = new HeatTemplateParam();
47                 paramJson.setParamType("json");
48                 paramJson.setParamName("my-json");
49                 
50                 HeatTemplateParam paramJsonEscaped = new HeatTemplateParam();
51                 paramJsonEscaped.setParamType("json");
52                 paramJsonEscaped.setParamName("my-json-escaped");
53                 
54                 Map<String, Object> jsonMap = mapper.readValue(getJson("free-form.json"), new TypeReference<Map<String, Object>>(){});
55                 input.put("my-json", jsonMap);
56                 
57                 input.put("my-json-escaped", getJson("free-form.json"));
58                 
59                 parameters.add(paramNum);
60                 parameters.add(paramString);
61                 parameters.add(paramJson);
62                 parameters.add(paramJsonEscaped);
63                 
64                 Map<String, Object> output = utils.convertInputMap(input, template);
65                 
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);
70
71                 JSONAssert.assertEquals(getJson("free-form.json"), mapper.writeValueAsString(output.get("my-json-escaped")), false);
72         }
73         
74         
75         private String getJson(String filename) throws IOException {
76                  return new String(Files.readAllBytes(Paths.get("src/test/resources/__files/MsoHeatUtils/" + filename)));
77         }
78         
79 }