2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.sli.plugins.restapicall;
24 import static org.junit.Assert.assertEquals;
25 import java.io.IOException;
26 import java.nio.file.Files;
27 import java.nio.file.Paths;
29 import org.junit.Test;
30 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
32 public class TestJsonParser {
35 public void test() throws SvcLogicException, IOException {
36 String path = "src/test/resources/test.json";
37 String content = new String(Files.readAllBytes(Paths.get(path)));
38 Map<String, String> mm = JsonParser.convertToProperties(content);
39 assertEquals("Server1", mm.get("equipment-data[0].equipment-id"));
40 assertEquals("1600000", mm.get("equipment-data[0].max-server-speed"));
41 assertEquals("2", mm.get("equipment-data[0].number-primary-servers"));
42 assertEquals("4", mm.get("equipment-data[0].server-count"));
43 assertEquals("Server1", mm.get("equipment-data[0].server-id"));
44 assertEquals("Unknown", mm.get("equipment-data[0].server-model"));
45 assertEquals("Test-Value", mm.get("equipment-data[0].test-node.test-inner-node"));
46 assertEquals("1", mm.get("equipment-data_length"));
47 assertEquals("The provisioned access bandwidth is at or exceeds 50% of the total server capacity.",
49 assertEquals("VCE-Cust", mm.get("resource-rule.endpoint-position"));
50 assertEquals("Server", mm.get("resource-rule.equipment-level"));
51 assertEquals("max-server-speed * number-primary-servers", mm.get("resource-rule.hard-limit-expression"));
52 assertEquals("Bandwidth", mm.get("resource-rule.resource-name"));
53 assertEquals("DUMMY", mm.get("resource-rule.service-model"));
54 assertEquals("0.6 * max-server-speed * number-primary-servers", mm.get("resource-rule.soft-limit-expression"));
55 assertEquals("1605000", mm.get("resource-state.last-added"));
56 assertEquals("1920000", mm.get("resource-state.limit-value"));
57 assertEquals("1600000", mm.get("resource-state.threshold-value"));
58 assertEquals("1605000", mm.get("resource-state.used"));
61 @Test(expected = NullPointerException.class)
62 public void testNullString() throws SvcLogicException {
63 JsonParser.convertToProperties(null);
67 public void testJsonStringToCtxToplevelArray() throws Exception {
68 String path = "src/test/resources/ArrayMenu.json";
69 String content = new String(Files.readAllBytes(Paths.get(path)));
70 Map<String, String> mm = JsonParser.convertToProperties(content);
72 assertEquals("1000", mm.get("[0].calories"));
73 assertEquals("1", mm.get("[0].id"));
74 assertEquals("plain", mm.get("[0].name"));
75 assertEquals("pizza", mm.get("[0].type"));
76 assertEquals("true", mm.get("[0].vegetarian"));
77 assertEquals("2000", mm.get("[1].calories"));
78 assertEquals("2", mm.get("[1].id"));
79 assertEquals("Tuesday Special", mm.get("[1].name"));
80 assertEquals("1", mm.get("[1].topping[0].id"));
81 assertEquals("onion", mm.get("[1].topping[0].name"));
82 assertEquals("2", mm.get("[1].topping[1].id"));
83 assertEquals("pepperoni", mm.get("[1].topping[1].name"));
84 assertEquals("2", mm.get("[1].topping_length"));
85 assertEquals("pizza", mm.get("[1].type"));
86 assertEquals("false", mm.get("[1].vegetarian"));
87 assertEquals("1500", mm.get("[2].calories"));
88 assertEquals("3", mm.get("[2].id"));
89 assertEquals("House Special", mm.get("[2].name"));
90 assertEquals("3", mm.get("[2].topping[0].id"));
91 assertEquals("basil", mm.get("[2].topping[0].name"));
92 assertEquals("4", mm.get("[2].topping[1].id"));
93 assertEquals("fresh mozzarella", mm.get("[2].topping[1].name"));
94 assertEquals("5", mm.get("[2].topping[2].id"));
95 assertEquals("tomato", mm.get("[2].topping[2].name"));
96 assertEquals("3", mm.get("[2].topping_length"));
97 assertEquals("pizza", mm.get("[2].type"));
98 assertEquals("true", mm.get("[2].vegetarian"));
99 assertEquals("3", mm.get("_length"));
103 public void testJsonStringToCtx() throws Exception {
104 String path = "src/test/resources/ObjectMenu.json";
105 String content = new String(Files.readAllBytes(Paths.get(path)));
106 Map<String, String> mm = JsonParser.convertToProperties(content);
107 assertEquals("1000", mm.get("menu[0].calories"));
108 assertEquals("1", mm.get("menu[0].id"));
109 assertEquals("plain", mm.get("menu[0].name"));
110 assertEquals("pizza", mm.get("menu[0].type"));
111 assertEquals("true", mm.get("menu[0].vegetarian"));
112 assertEquals("2000", mm.get("menu[1].calories"));
113 assertEquals("2", mm.get("menu[1].id"));
114 assertEquals("Tuesday Special", mm.get("menu[1].name"));
115 assertEquals("1", mm.get("menu[1].topping[0].id"));
116 assertEquals("onion", mm.get("menu[1].topping[0].name"));
117 assertEquals("2", mm.get("menu[1].topping[1].id"));
118 assertEquals("pepperoni", mm.get("menu[1].topping[1].name"));
119 assertEquals("2", mm.get("menu[1].topping_length"));
120 assertEquals("pizza", mm.get("menu[1].type"));
121 assertEquals("false", mm.get("menu[1].vegetarian"));
122 assertEquals("1500", mm.get("menu[2].calories"));
123 assertEquals("3", mm.get("menu[2].id"));
124 assertEquals("House Special", mm.get("menu[2].name"));
125 assertEquals("3", mm.get("menu[2].topping[0].id"));
126 assertEquals("basil", mm.get("menu[2].topping[0].name"));
127 assertEquals("4", mm.get("menu[2].topping[1].id"));
128 assertEquals("fresh mozzarella", mm.get("menu[2].topping[1].name"));
129 assertEquals("5", mm.get("menu[2].topping[2].id"));
130 assertEquals("tomato", mm.get("menu[2].topping[2].name"));
131 assertEquals("3", mm.get("menu[2].topping_length"));
132 assertEquals("pizza", mm.get("menu[2].type"));
133 assertEquals("true", mm.get("menu[2].vegetarian"));
134 assertEquals("3", mm.get("menu_length"));
138 public void test1dJsonStringToCtx() throws Exception {
139 String path = "src/test/resources/1dArray.json";
140 String content = new String(Files.readAllBytes(Paths.get(path)));
141 Map<String, String> mm = JsonParser.convertToProperties(content);
143 System.out.println(mm);
144 assertEquals("6", mm.get("_length"));
145 assertEquals("apple", mm.get("[0]"));
146 assertEquals("orange", mm.get("[1]"));
147 assertEquals("banana", mm.get("[2]"));
148 assertEquals("squash", mm.get("[3]"));
149 assertEquals("broccoli", mm.get("[4]"));
150 assertEquals("cauliflower", mm.get("[5]"));
154 public void test2dJsonStringToCtx() throws Exception {
155 String path = "src/test/resources/2dArray.json";
156 String content = new String(Files.readAllBytes(Paths.get(path)));
157 Map<String, String> mm = JsonParser.convertToProperties(content);
159 // code will crash before these tests
160 assertEquals("apple", mm.get("[0][0]"));
161 assertEquals("orange", mm.get("[0][1]"));
162 assertEquals("banana", mm.get("[0][2]"));
163 assertEquals("3", mm.get("[0]_length"));
165 assertEquals("squash", mm.get("[1][0]"));
166 assertEquals("broccoli", mm.get("[1][1]"));
167 assertEquals("cauliflower", mm.get("[1][2]"));
168 assertEquals("3", mm.get("[1]_length"));
169 assertEquals("2", mm.get("_length"));
173 public void test3dJsonStringToCtx() throws Exception {
174 String path = "src/test/resources/3dArray.json";
175 String content = new String(Files.readAllBytes(Paths.get(path)));
176 Map<String, String> mm = JsonParser.convertToProperties(content);
178 assertEquals("3", mm.get("_length"));
179 assertEquals("1", mm.get("[0]_length"));
180 assertEquals("3", mm.get("[0][0]_length"));
182 assertEquals("2", mm.get("[1]_length"));
183 assertEquals("3", mm.get("[1][0]_length"));
184 assertEquals("3", mm.get("[1][1]_length"));
186 assertEquals("3", mm.get("[2]_length"));
187 assertEquals("3", mm.get("[2][0]_length"));
188 assertEquals("3", mm.get("[2][1]_length"));
189 assertEquals("3", mm.get("[2][2]_length"));
191 assertEquals("x", mm.get("[0][0][0]"));
192 assertEquals("y", mm.get("[0][0][1]"));
193 assertEquals("z", mm.get("[0][0][2]"));
195 assertEquals("abc", mm.get("[1][0][0]"));
196 assertEquals("def", mm.get("[1][0][1]"));
197 assertEquals("xyz", mm.get("[1][0][2]"));
199 assertEquals("123", mm.get("[1][1][0]"));
200 assertEquals("456", mm.get("[1][1][1]"));
201 assertEquals("789", mm.get("[1][1][2]"));
203 assertEquals("a", mm.get("[2][0][0]"));
204 assertEquals("b", mm.get("[2][0][1]"));
205 assertEquals("c", mm.get("[2][0][2]"));
207 assertEquals("d", mm.get("[2][1][0]"));
208 assertEquals("e", mm.get("[2][1][1]"));
209 assertEquals("f", mm.get("[2][1][2]"));
211 assertEquals("1", mm.get("[2][2][0]"));
212 assertEquals("2", mm.get("[2][2][1]"));
213 assertEquals("3", mm.get("[2][2][2]"));
217 public void testJsonWidgetStringToCtx() throws Exception {
218 String path = "src/test/resources/Widget.json";
219 String content = new String(Files.readAllBytes(Paths.get(path)));
220 Map<String, String> mm = JsonParser.convertToProperties(content);
221 assertEquals("false", mm.get("widget.debug"));
222 assertEquals("center", mm.get("widget.image.alignment"));
223 assertEquals("150", mm.get("widget.image.hOffset"));
224 assertEquals("moon", mm.get("widget.image.name"));
225 assertEquals("images/moon.png", mm.get("widget.image.src"));
226 assertEquals("150", mm.get("widget.image.vOffset"));
227 assertEquals("center", mm.get("widget.text.alignment"));
228 assertEquals("Click Me", mm.get("widget.text.data"));
229 assertEquals("350", mm.get("widget.text.hOffset"));
230 assertEquals("text1", mm.get("widget.text.name"));
231 assertEquals("21", mm.get("widget.text.size"));
232 assertEquals("bold", mm.get("widget.text.style"));
233 assertEquals("200", mm.get("widget.text.vOffset"));
234 assertEquals("300", mm.get("widget.window.height"));
235 assertEquals("main_window", mm.get("widget.window.name"));
236 assertEquals("ONAP Widget", mm.get("widget.window.title"));
237 assertEquals("200", mm.get("widget.window.width"));
241 public void testEmbeddedEscapedJsonJsonStringToCtx() throws Exception {
242 String path = "src/test/resources/EmbeddedEscapedJson.json";
243 String content = new String(Files.readAllBytes(Paths.get(path)));
244 Map<String, String> mm = JsonParser.convertToProperties(content);
245 assertEquals("escapedJsonObject", mm.get("input.parameters[0].name"));
246 assertEquals("[{\"id\":\"0.2.0.0/16\"},{\"id\":\"ge04::/64\"}]", mm.get("input.parameters[0].value"));
247 assertEquals("Hello/World", mm.get("input.parameters[1].value"));
248 assertEquals("resourceName", mm.get("input.parameters[2].name"));
249 assertEquals("The\t\"Best\"\tName", mm.get("input.parameters[2].value"));
250 assertEquals("3", mm.get("input.parameters_length"));
252 // Break the embedded json object into properties
253 mm = JsonParser.convertToProperties(mm.get("input.parameters[0].value"));
254 assertEquals("0.2.0.0/16", mm.get("[0].id"));
255 assertEquals("ge04::/64", mm.get("[1].id"));
256 assertEquals("2", mm.get("_length"));