2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 Huawei Technologies Co., Ltd. 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.onap.ccsdk.sli.plugins.yangserializers.dfserializer;
24 * Unit test case utilities for data format serializer and restconf api call
27 public final class DataFormatUtilsTest {
29 static final String ENCODE_TO_JSON_ID = "{\n" +
30 " \"identity-test:con1\": {\n" +
31 " \"interfaces\": {\n" +
32 " \"int-list\": [\n" +
34 " \"iden\": \"optical\",\n" +
35 " \"available\": {\n" +
38 " \"identity-types:Loopback\",\n" +
39 " \"identity-types-second:Ethernet" +
42 " \"leaf1\": \"58\",\n" +
43 " \"leaf2\": \"identity-types-second:iden" +
48 " \"iden\": \"214748364\",\n" +
49 " \"available\": {\n" +
52 " \"identity-types:Loopback\",\n" +
53 " \"identity-types-second:Ethernet" +
56 " \"leaf1\": \"8888\",\n" +
57 " \"leaf2\": \"identity-types-second:ide" +
63 " \"interface\": \"identity-types:physical\"\n" +
65 " \"identity-test:l\": \"abc\"\n" +
68 static final String ENCODE_TO_XML_ID = "<?xml version=\"1.0\" encoding=" +
69 "\"UTF-8\" standalone=\"no\"?>\n" +
70 "<con1 xmlns=\"identity:ns:test:json:ser\">\n" +
73 " <iden>optical</iden>\n" +
76 " <ll xmlns:yangid=\"identity:list:ns:test:json:se" +
77 "r\">yangid:Loopback</ll>\n" +
78 " <ll xmlns:yangid=\"identity:list:second:ns:test" +
79 ":json:ser\">yangid:Ethernet</ll>\n" +
80 " <leaf1>58</leaf1>\n" +
81 " <leaf2 xmlns:yangid=\"identity:list:second:ns:t" +
82 "est:json:ser\">yangid:iden2</leaf2>\n" +
86 " <iden>214748364</iden>\n" +
89 " <ll xmlns:yangid=\"identity:list:ns:test:json:s" +
90 "er\">yangid:Loopback</ll>\n" +
91 " <ll xmlns:yangid=\"identity:list:second:ns:test" +
92 ":json:ser\">yangid:Ethernet</ll>\n" +
93 " <leaf1>8888</leaf1>\n" +
94 " <leaf2 xmlns:yangid=\"identity:list:second:ns:t" +
95 "est:json:ser\">yangid:iden2</leaf2>\n" +
99 " <interface xmlns:yangid=\"identity:list:ns:test:json:ser\">" +
100 "yangid:physical</interface>\n" +
103 static final String ENCODE_TO_JSON_YANG_COMMON = "\n " +
104 "\"test-augment:cont13\": {\n" +
111 " \"leaf27\": \"abc\"\n" +
114 " \"leaf27\": \"abc\"\n" +
117 " \"leaf28\": \"abc\",\n" +
119 " \"leaf26\": \"abc\"\n" +
122 " \"test-augment:list7\": [\n" +
124 " \"leaf14\": \"test\"\n" +
127 " \"leaf14\": \"create\"\n" +
130 " \"test-augment:leaf15\": \"abc\",\n" +
131 " \"test-augment:ll6\": [\n" +
132 " \"unbounded\",\n" +
135 " \"test-augment:cont5\": {\n" +
136 " \"leaf13\": \"true\"\n" +
139 static final String ENCODE_TO_JSON_YANG_AUG_POST = "{\n" +
140 " \"test-yang:leaf10\": \"abc\"," +
141 ENCODE_TO_JSON_YANG_COMMON + "\n}";
143 static final String ENCODE_TO_JSON_YANG = "{\n" +
144 " \"test-yang:cont2\": {\n" +
151 " \"leaf1\": \"true\",\n" +
158 " \"leaf9\": \"abc\"\n" +
161 " \"leaf9\": \"abc\"\n" +
164 " \"leaf3\": \"abc\",\n" +
165 " \"leaf2\": \"abc\",\n" +
168 " \"leaf8\": \"abc\"\n" +
171 " \"leaf8\": \"abc\"\n" +
175 " \"leaf11\": \"abc\"\n" +
183 " \"leaf1\": \"true\",\n" +
188 " \"leaf3\": \"abc\",\n" +
191 " \"leaf9\": \"abc\"\n" +
194 " \"leaf9\": \"abc\"\n" +
199 " \"leaf8\": \"abc\"\n" +
202 " \"leaf8\": \"abc\"\n" +
205 " \"leaf2\": \"abc\",\n" +
207 " \"leaf11\": \"abc\"\n" +
220 " \"leaf10\": \"abc\"," +
221 addSpace(ENCODE_TO_JSON_YANG_COMMON, 8) + "\n" +
228 " \"leaf10\": \"abc\"\n" +
230 " \"leaf5\": \"abc\",\n" +
233 " \"leaf4\": \"abc\"\n" +
236 " \"leaf4\": \"abc\"\n" +
239 " \"leaf12\": \"abc\",\n" +
240 " \"leaf6\": \"abc\",\n" +
243 " \"leaf11\": \"abc\"\n" +
246 " \"leaf11\": \"abc\"\n" +
252 static final String ENCODE_TO_XML_YANG = "<?xml version=\"1.0\" encoding" +
253 "=\"UTF-8\" standalone=\"no\"?>\n" +
254 "<cont2 xmlns=\"urn:opendaylight:params:xml:ns:yang:test\">\n" +
256 " <ll1>abc</ll1>\n" +
257 " <ll1>abc</ll1>\n" +
258 " <leaf1>true</leaf1>\n" +
259 " <ll2>abc</ll2>\n" +
260 " <ll2>abc</ll2>\n" +
262 " <leaf9>abc</leaf9>\n" +
265 " <leaf9>abc</leaf9>\n" +
267 " <leaf3>abc</leaf3>\n" +
268 " <leaf2>abc</leaf2>\n" +
270 " <leaf8>abc</leaf8>\n" +
273 " <leaf8>abc</leaf8>\n" +
276 " <leaf11>abc</leaf11>\n" +
280 " <ll1>abc</ll1>\n" +
281 " <ll1>abc</ll1>\n" +
282 " <leaf1>true</leaf1>\n" +
283 " <ll2>abc</ll2>\n" +
284 " <ll2>abc</ll2>\n" +
285 " <leaf3>abc</leaf3>\n" +
287 " <leaf9>abc</leaf9>\n" +
290 " <leaf9>abc</leaf9>\n" +
293 " <leaf8>abc</leaf8>\n" +
296 " <leaf8>abc</leaf8>\n" +
298 " <leaf2>abc</leaf2>\n" +
300 " <leaf11>abc</leaf11>\n" +
303 " <ll3>abc</ll3>\n" +
304 " <ll3>abc</ll3>\n" +
305 " <ll5>abc</ll5>\n" +
306 " <ll5>abc</ll5>\n" +
308 " <leaf10>abc</leaf10>\n" +
309 " <cont13 xmlns=\"urn:opendaylight:params:xml:ns:yang:" +
311 " <ll9>abc</ll9>\n" +
312 " <ll9>abc</ll9>\n" +
314 " <leaf27>abc</leaf27>\n" +
317 " <leaf27>abc</leaf27>\n" +
319 " <leaf28>abc</leaf28>\n" +
321 " <leaf26>abc</leaf26>\n" +
324 " <list7 xmlns=\"urn:opendaylight:params:xml:ns:yang:a" +
326 " <leaf14>test</leaf14>\n" +
328 " <list7 xmlns=\"urn:opendaylight:params:xml:ns:yang:a" +
330 " <leaf14>create</leaf14>\n" +
332 " <leaf15 xmlns=\"urn:opendaylight:params:xml:ns:yang:" +
333 "augment\">abc</leaf15>\n" +
334 " <ll6 xmlns=\"urn:opendaylight:params:xml:ns:yang:aug" +
335 "ment\">unbounded</ll6>\n" +
336 " <ll6 xmlns=\"urn:opendaylight:params:xml:ns:yang:aug" +
338 " <cont5 xmlns=\"urn:opendaylight:params:xml:ns:yang:a" +
340 " <leaf13>true</leaf13>\n" +
343 " <ll4>abc</ll4>\n" +
344 " <ll4>abc</ll4>\n" +
346 " <leaf10>abc</leaf10>\n" +
348 " <leaf5>abc</leaf5>\n" +
350 " <leaf4>abc</leaf4>\n" +
353 " <leaf4>abc</leaf4>\n" +
355 " <leaf12>abc</leaf12>\n" +
356 " <leaf6>abc</leaf6>\n" +
358 " <leaf11>abc</leaf11>\n" +
361 " <leaf11>abc</leaf11>\n" +
366 static final String ENCODE_TO_JSON_RPC = "{\n" +
367 " \"test-yang:input\": {\n" +
368 " \"leaf30\": \"abc\",\n" +
371 " \"leaf29\": \"abc\"\n" +
374 " \"leaf29\": \"abc\"\n" +
378 " \"leaf31\": \"abc\"\n" +
381 " \"leaf28\": \"abc\"\n" +
386 " \"leaf27\": \"abc\"\n" +
389 " \"leaf27\": \"abc\"\n" +
396 " \"leaf28\": \"abc\"\n" +
405 static final String DECODE_FROM_JSON_RPC = "{\n" +
406 " \"test-yang:output\": {\n" +
408 " \"leaf32\": \"abc\"\n" +
412 " \"leaf33\": \"abc\"\n" +
415 " \"leaf33\": \"abc\"\n" +
418 " \"leaf34\": \"abc\",\n" +
424 " \"leaf35\": \"abc\"\n" +
428 " \"leaf26\": \"abc\"\n" +
432 " \"leaf27\": \"abc\"\n" +
435 " \"leaf27\": \"abc\"\n" +
442 " \"leaf28\": \"abc\"\n" +
447 static final String ENCODE_TO_XML_RPC = "<?xml version=\"1.0\" encoding" +
448 "=\"UTF-8\" standalone=\"no\"?>\n" +
449 "<input xmlns=\"urn:opendaylight:params:xml:ns:yang:test\">\n" +
450 " <leaf30>abc</leaf30>\n" +
452 " <leaf29>abc</leaf29>\n" +
455 " <leaf29>abc</leaf29>\n" +
458 " <leaf31>abc</leaf31>\n" +
461 " <leaf28>abc</leaf28>\n" +
465 " <leaf27>abc</leaf27>\n" +
468 " <leaf27>abc</leaf27>\n" +
470 " <ll9>abc</ll9>\n" +
471 " <ll9>abc</ll9>\n" +
472 " <leaf28>abc</leaf28>\n" +
474 " <ll10>abc</ll10>\n" +
475 " <ll10>abc</ll10>\n" +
478 static final String DECODE_FROM_XML_RPC = "<?xml version=\"1.0\" encodi" +
479 "ng=\"UTF-8\" standalone=\"no\"?>\n" +
480 "<output xmlns=\"urn:opendaylight:params:xml:ns:yang:test\">\n" +
482 " <leaf32>abc</leaf32>\n" +
485 " <leaf33>abc</leaf33>\n" +
488 " <leaf33>abc</leaf33>\n" +
490 " <leaf34>abc</leaf34>\n" +
491 " <ll11>abc</ll11>\n" +
492 " <ll11>abc</ll11>\n" +
494 " <leaf35>abc</leaf35>\n" +
498 " <leaf26>abc</leaf26>\n" +
501 " <leaf27>abc</leaf27>\n" +
504 " <leaf27>abc</leaf27>\n" +
506 " <ll9>abc</ll9>\n" +
507 " <ll9>abc</ll9>\n" +
508 " <leaf28>abc</leaf28>\n" +
513 * Adds the specified number of space required for a req in each line.
515 * @param req request message
516 * @param i number of space
517 * @return space appended string
519 private static String addSpace(String req, int i) {
520 StringBuilder space = new StringBuilder("");
521 for (int sp = 0; sp < i; sp++) {
522 space = space.append(" ");
524 return req.replaceAll("\n", "\n" + space.toString());