UT and defect fixes for DF serializer
[ccsdk/sli/plugins.git] / restconf-client / provider / src / test / java / org / onap / ccsdk / sli / plugins / yangserializers / dfserializer / DataFormatUtilsTest.java
diff --git a/restconf-client/provider/src/test/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/DataFormatUtilsTest.java b/restconf-client/provider/src/test/java/org/onap/ccsdk/sli/plugins/yangserializers/dfserializer/DataFormatUtilsTest.java
new file mode 100644 (file)
index 0000000..c7efdeb
--- /dev/null
@@ -0,0 +1,504 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - CCSDK
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.plugins.yangserializers.dfserializer;
+
+/**
+ * Unit test case utilities for data format serializer and restconf api call
+ * node.
+ */
+public final class DataFormatUtilsTest {
+
+    static final String ENCODE_TO_JSON_ID = "{\n" +
+            "    \"identity-test:con1\": {\n" +
+            "        \"interfaces\": {\n" +
+            "            \"int-list\": [\n" +
+            "                {\n" +
+            "                    \"iden\": \"optical\",\n" +
+            "                    \"available\": {\n" +
+            "                        \"ll\": [\n" +
+            "                            \"Giga\",\n" +
+            "                            \"identity-types:Loopback\",\n" +
+            "                            \"identity-types-second:Ethernet" +
+            "\"\n" +
+            "                        ],\n" +
+            "                        \"leaf1\": \"58\",\n" +
+            "                        \"leaf2\": \"identity-types-second:iden" +
+            "2\"\n" +
+            "                    }\n" +
+            "                },\n" +
+            "                {\n" +
+            "                    \"iden\": \"214748364\",\n" +
+            "                    \"available\": {\n" +
+            "                        \"ll\": [\n" +
+            "                            \"Giga\",\n" +
+            "                            \"identity-types:Loopback\",\n" +
+            "                            \"identity-types-second:Ethernet" +
+            "\"\n" +
+            "                        ],\n" +
+            "                        \"leaf1\": \"8888\",\n" +
+            "                        \"leaf2\": \"identity-types-second:ide" +
+            "n2\"\n" +
+            "                    }\n" +
+            "                }\n" +
+            "            ]\n" +
+            "        },\n" +
+            "        \"interface\": \"identity-types:physical\"\n" +
+            "    },\n" +
+            "    \"identity-test:l\": \"abc\"\n" +
+            "}";
+
+    static final String ENCODE_TO_XML_ID = "<?xml version=\"1.0\" encoding=" +
+            "\"UTF-8\" standalone=\"no\"?>\n" +
+            "<con1 xmlns=\"identity:ns:test:json:ser\">\n" +
+            "    <interfaces>\n" +
+            "        <int-list>\n" +
+            "            <iden>optical</iden>\n" +
+            "            <available>\n" +
+            "                <ll>Giga</ll>\n" +
+            "                <ll xmlns:yangid=\"identity:list:ns:test:json:se" +
+            "r\">yangid:Loopback</ll>\n" +
+            "                <ll xmlns:yangid=\"identity:list:second:ns:test" +
+            ":json:ser\">yangid:Ethernet</ll>\n" +
+            "                <leaf1>58</leaf1>\n" +
+            "                <leaf2 xmlns:yangid=\"identity:list:second:ns:t" +
+            "est:json:ser\">yangid:iden2</leaf2>\n" +
+            "            </available>\n" +
+            "        </int-list>\n" +
+            "        <int-list>\n" +
+            "            <iden>214748364</iden>\n" +
+            "            <available>\n" +
+            "                <ll>Giga</ll>\n" +
+            "                <ll xmlns:yangid=\"identity:list:ns:test:json:s" +
+            "er\">yangid:Loopback</ll>\n" +
+            "                <ll xmlns:yangid=\"identity:list:second:ns:test" +
+            ":json:ser\">yangid:Ethernet</ll>\n" +
+            "                <leaf1>8888</leaf1>\n" +
+            "                <leaf2 xmlns:yangid=\"identity:list:second:ns:t" +
+            "est:json:ser\">yangid:iden2</leaf2>\n" +
+            "            </available>\n" +
+            "        </int-list>\n" +
+            "    </interfaces>\n" +
+            "    <interface xmlns:yangid=\"identity:list:ns:test:json:ser\">" +
+            "yangid:physical</interface>\n" +
+            "</con1>\n";
+
+    static final String ENCODE_TO_JSON_YANG = "{\n" +
+            "    \"test-yang:cont2\": {\n" +
+            "        \"list1\": [\n" +
+            "            {\n" +
+            "                \"ll1\": [\n" +
+            "                    \"abc\",\n" +
+            "                    \"abc\"\n" +
+            "                ],\n" +
+            "                \"leaf1\": \"true\",\n" +
+            "                \"ll2\": [\n" +
+            "                    \"abc\",\n" +
+            "                    \"abc\"\n" +
+            "                ],\n" +
+            "                \"list5\": [\n" +
+            "                    {\n" +
+            "                        \"leaf9\": \"abc\"\n" +
+            "                    },\n" +
+            "                    {\n" +
+            "                        \"leaf9\": \"abc\"\n" +
+            "                    }\n" +
+            "                ],\n" +
+            "                \"leaf3\": \"abc\",\n" +
+            "                \"leaf2\": \"abc\",\n" +
+            "                \"list4\": [\n" +
+            "                    {\n" +
+            "                        \"leaf8\": \"abc\"\n" +
+            "                    },\n" +
+            "                    {\n" +
+            "                        \"leaf8\": \"abc\"\n" +
+            "                    }\n" +
+            "                ],\n" +
+            "                \"cont4\": {\n" +
+            "                    \"leaf11\": \"abc\"\n" +
+            "                }\n" +
+            "            },\n" +
+            "            {\n" +
+            "                \"ll1\": [\n" +
+            "                    \"abc\",\n" +
+            "                    \"abc\"\n" +
+            "                ],\n" +
+            "                \"leaf1\": \"true\",\n" +
+            "                \"ll2\": [\n" +
+            "                    \"abc\",\n" +
+            "                    \"abc\"\n" +
+            "                ],\n" +
+            "                \"leaf3\": \"abc\",\n" +
+            "                \"list5\": [\n" +
+            "                    {\n" +
+            "                        \"leaf9\": \"abc\"\n" +
+            "                    },\n" +
+            "                    {\n" +
+            "                        \"leaf9\": \"abc\"\n" +
+            "                    }\n" +
+            "                ],\n" +
+            "                \"list4\": [\n" +
+            "                    {\n" +
+            "                        \"leaf8\": \"abc\"\n" +
+            "                    },\n" +
+            "                    {\n" +
+            "                        \"leaf8\": \"abc\"\n" +
+            "                    }\n" +
+            "                ],\n" +
+            "                \"leaf2\": \"abc\",\n" +
+            "                \"cont4\": {\n" +
+            "                    \"leaf11\": \"abc\"\n" +
+            "                }\n" +
+            "            }\n" +
+            "        ],\n" +
+            "        \"ll3\": [\n" +
+            "            \"abc\",\n" +
+            "            \"abc\"\n" +
+            "        ],\n" +
+            "        \"ll5\": [\n" +
+            "            \"abc\",\n" +
+            "            \"abc\"\n" +
+            "        ],\n" +
+            "        \"cont4\": {\n" +
+            "            \"leaf10\": \"abc\",\n" +
+            "            \"test-augment:cont13\": {\n" +
+            "                \"ll9\": [\n" +
+            "                    \"abc\",\n" +
+            "                    \"abc\"\n" +
+            "                ],\n" +
+            "                \"list9\": [\n" +
+            "                    {\n" +
+            "                        \"leaf27\": \"abc\"\n" +
+            "                    },\n" +
+            "                    {\n" +
+            "                        \"leaf27\": \"abc\"\n" +
+            "                    }\n" +
+            "                ],\n" +
+            "                \"leaf28\": \"abc\",\n" +
+            "                \"cont12\": {\n" +
+            "                    \"leaf26\": \"abc\"\n" +
+            "                }\n" +
+            "            },\n" +
+            "            \"test-augment:list7\": [\n" +
+            "                {\n" +
+            "                    \"leaf14\": \"test\"\n" +
+            "                },\n" +
+            "                {\n" +
+            "                    \"leaf14\": \"create\"\n" +
+            "                }\n" +
+            "            ],\n" +
+            "            \"test-augment:leaf15\": \"abc\",\n" +
+            "            \"test-augment:ll6\": [\n" +
+            "                \"unbounded\",\n" +
+            "                \"8\"\n" +
+            "            ],\n" +
+            "            \"test-augment:cont5\": {\n" +
+            "                \"leaf13\": \"true\"\n" +
+            "            }\n" +
+            "        },\n" +
+            "        \"ll4\": [\n" +
+            "            \"abc\",\n" +
+            "            \"abc\"\n" +
+            "        ],\n" +
+            "        \"cont3\": {\n" +
+            "            \"leaf10\": \"abc\"\n" +
+            "        },\n" +
+            "        \"leaf5\": \"abc\",\n" +
+            "        \"list2\": [\n" +
+            "            {\n" +
+            "                \"leaf4\": \"abc\"\n" +
+            "            },\n" +
+            "            {\n" +
+            "                \"leaf4\": \"abc\"\n" +
+            "            }\n" +
+            "        ],\n" +
+            "        \"leaf12\": \"abc\",\n" +
+            "        \"leaf6\": \"abc\",\n" +
+            "        \"list6\": [\n" +
+            "            {\n" +
+            "                \"leaf11\": \"abc\"\n" +
+            "            },\n" +
+            "            {\n" +
+            "                \"leaf11\": \"abc\"\n" +
+            "            }\n" +
+            "        ]\n" +
+            "    }\n" +
+            "}";
+
+    static final String ENCODE_TO_XML_YANG = "<?xml version=\"1.0\" encoding" +
+            "=\"UTF-8\" standalone=\"no\"?>\n" +
+            "<cont2 xmlns=\"urn:opendaylight:params:xml:ns:yang:test\">\n" +
+            "    <list1>\n" +
+            "        <ll1>abc</ll1>\n" +
+            "        <ll1>abc</ll1>\n" +
+            "        <leaf1>true</leaf1>\n" +
+            "        <ll2>abc</ll2>\n" +
+            "        <ll2>abc</ll2>\n" +
+            "        <list5>\n" +
+            "            <leaf9>abc</leaf9>\n" +
+            "        </list5>\n" +
+            "        <list5>\n" +
+            "            <leaf9>abc</leaf9>\n" +
+            "        </list5>\n" +
+            "        <leaf3>abc</leaf3>\n" +
+            "        <leaf2>abc</leaf2>\n" +
+            "        <list4>\n" +
+            "            <leaf8>abc</leaf8>\n" +
+            "        </list4>\n" +
+            "        <list4>\n" +
+            "            <leaf8>abc</leaf8>\n" +
+            "        </list4>\n" +
+            "        <cont4>\n" +
+            "            <leaf11>abc</leaf11>\n" +
+            "        </cont4>\n" +
+            "    </list1>\n" +
+            "    <list1>\n" +
+            "        <ll1>abc</ll1>\n" +
+            "        <ll1>abc</ll1>\n" +
+            "        <leaf1>true</leaf1>\n" +
+            "        <ll2>abc</ll2>\n" +
+            "        <ll2>abc</ll2>\n" +
+            "        <leaf3>abc</leaf3>\n" +
+            "        <list5>\n" +
+            "            <leaf9>abc</leaf9>\n" +
+            "        </list5>\n" +
+            "        <list5>\n" +
+            "            <leaf9>abc</leaf9>\n" +
+            "        </list5>\n" +
+            "        <list4>\n" +
+            "            <leaf8>abc</leaf8>\n" +
+            "        </list4>\n" +
+            "        <list4>\n" +
+            "            <leaf8>abc</leaf8>\n" +
+            "        </list4>\n" +
+            "        <leaf2>abc</leaf2>\n" +
+            "        <cont4>\n" +
+            "            <leaf11>abc</leaf11>\n" +
+            "        </cont4>\n" +
+            "    </list1>\n" +
+            "    <ll3>abc</ll3>\n" +
+            "    <ll3>abc</ll3>\n" +
+            "    <ll5>abc</ll5>\n" +
+            "    <ll5>abc</ll5>\n" +
+            "    <cont4>\n" +
+            "        <leaf10>abc</leaf10>\n" +
+            "        <cont13 xmlns=\"urn:opendaylight:params:xml:ns:yang:" +
+            "augment\">\n" +
+            "            <ll9>abc</ll9>\n" +
+            "            <ll9>abc</ll9>\n" +
+            "            <list9>\n" +
+            "                <leaf27>abc</leaf27>\n" +
+            "            </list9>\n" +
+            "            <list9>\n" +
+            "                <leaf27>abc</leaf27>\n" +
+            "            </list9>\n" +
+            "            <leaf28>abc</leaf28>\n" +
+            "            <cont12>\n" +
+            "                <leaf26>abc</leaf26>\n" +
+            "            </cont12>\n" +
+            "        </cont13>\n" +
+            "        <list7 xmlns=\"urn:opendaylight:params:xml:ns:yang:a" +
+            "ugment\">\n" +
+            "            <leaf14>test</leaf14>\n" +
+            "        </list7>\n" +
+            "        <list7 xmlns=\"urn:opendaylight:params:xml:ns:yang:a" +
+            "ugment\">\n" +
+            "            <leaf14>create</leaf14>\n" +
+            "        </list7>\n" +
+            "        <leaf15 xmlns=\"urn:opendaylight:params:xml:ns:yang:" +
+            "augment\">abc</leaf15>\n" +
+            "        <ll6 xmlns=\"urn:opendaylight:params:xml:ns:yang:aug" +
+            "ment\">unbounded</ll6>\n" +
+            "        <ll6 xmlns=\"urn:opendaylight:params:xml:ns:yang:aug" +
+            "ment\">8</ll6>\n" +
+            "        <cont5 xmlns=\"urn:opendaylight:params:xml:ns:yang:a" +
+            "ugment\">\n" +
+            "            <leaf13>true</leaf13>\n" +
+            "        </cont5>\n" +
+            "    </cont4>\n" +
+            "    <ll4>abc</ll4>\n" +
+            "    <ll4>abc</ll4>\n" +
+            "    <cont3>\n" +
+            "        <leaf10>abc</leaf10>\n" +
+            "    </cont3>\n" +
+            "    <leaf5>abc</leaf5>\n" +
+            "    <list2>\n" +
+            "        <leaf4>abc</leaf4>\n" +
+            "    </list2>\n" +
+            "    <list2>\n" +
+            "        <leaf4>abc</leaf4>\n" +
+            "    </list2>\n" +
+            "    <leaf12>abc</leaf12>\n" +
+            "    <leaf6>abc</leaf6>\n" +
+            "    <list6>\n" +
+            "        <leaf11>abc</leaf11>\n" +
+            "    </list6>\n" +
+            "    <list6>\n" +
+            "        <leaf11>abc</leaf11>\n" +
+            "    </list6>\n" +
+            "</cont2>\n";
+
+
+    static final String ENCODE_TO_JSON_RPC = "{\n" +
+            "    \"test-yang:input\": {\n" +
+            "        \"leaf30\": \"abc\",\n" +
+            "        \"list10\": [\n" +
+            "            {\n" +
+            "                \"leaf29\": \"abc\"\n" +
+            "            },\n" +
+            "            {\n" +
+            "                \"leaf29\": \"abc\"\n" +
+            "            }\n" +
+            "        ],\n" +
+            "        \"cont15\": {\n" +
+            "            \"leaf31\": \"abc\"\n" +
+            "        },\n" +
+            "        \"cont14\": {\n" +
+            "            \"leaf28\": \"abc\"\n" +
+            "        },\n" +
+            "        \"cont13\": {\n" +
+            "            \"list9\": [\n" +
+            "                {\n" +
+            "                    \"leaf27\": \"abc\"\n" +
+            "                },\n" +
+            "                {\n" +
+            "                    \"leaf27\": \"abc\"\n" +
+            "                }\n" +
+            "            ],\n" +
+            "            \"ll9\": [\n" +
+            "                \"abc\",\n" +
+            "                \"abc\"\n" +
+            "            ],\n" +
+            "            \"leaf28\": \"abc\"\n" +
+            "        },\n" +
+            "        \"ll10\": [\n" +
+            "            \"abc\",\n" +
+            "            \"abc\"\n" +
+            "        ]\n" +
+            "    }\n" +
+            "}";
+
+    static final String DECODE_FROM_JSON_RPC = "{\n" +
+            "    \"test-yang:output\": {\n" +
+            "        \"cont16\": {\n" +
+            "            \"leaf32\": \"abc\"\n" +
+            "        },\n" +
+            "        \"list11\": [\n" +
+            "            {\n" +
+            "                \"leaf33\": \"abc\"\n" +
+            "            },\n" +
+            "            {\n" +
+            "                \"leaf33\": \"abc\"\n" +
+            "            }\n" +
+            "        ],\n" +
+            "        \"leaf34\": \"abc\",\n" +
+            "        \"ll11\": [\n" +
+            "            \"abc\",\n" +
+            "            \"abc\"\n" +
+            "        ],\n" +
+            "        \"cont17\": {\n" +
+            "            \"leaf35\": \"abc\"\n" +
+            "        },\n" +
+            "        \"cont13\": {\n" +
+            "            \"cont12\": {\n" +
+            "                \"leaf26\": \"abc\"\n" +
+            "            },\n" +
+            "            \"list9\": [\n" +
+            "                {\n" +
+            "                    \"leaf27\": \"abc\"\n" +
+            "                },\n" +
+            "                {\n" +
+            "                    \"leaf27\": \"abc\"\n" +
+            "                }\n" +
+            "            ],\n" +
+            "            \"ll9\": [\n" +
+            "                \"abc\",\n" +
+            "                \"abc\"\n" +
+            "            ],\n" +
+            "            \"leaf28\": \"abc\"\n" +
+            "        }\n" +
+            "    }\n" +
+            "}";
+
+    static final String ENCODE_TO_XML_RPC = "<?xml version=\"1.0\" encoding" +
+            "=\"UTF-8\" standalone=\"no\"?>\n" +
+            "<input xmlns=\"urn:opendaylight:params:xml:ns:yang:test\">\n" +
+            "    <leaf30>abc</leaf30>\n" +
+            "    <list10>\n" +
+            "        <leaf29>abc</leaf29>\n" +
+            "    </list10>\n" +
+            "    <list10>\n" +
+            "        <leaf29>abc</leaf29>\n" +
+            "    </list10>\n" +
+            "    <cont15>\n" +
+            "        <leaf31>abc</leaf31>\n" +
+            "    </cont15>\n" +
+            "    <cont14>\n" +
+            "        <leaf28>abc</leaf28>\n" +
+            "    </cont14>\n" +
+            "    <cont13>\n" +
+            "        <list9>\n" +
+            "            <leaf27>abc</leaf27>\n" +
+            "        </list9>\n" +
+            "        <list9>\n" +
+            "            <leaf27>abc</leaf27>\n" +
+            "        </list9>\n" +
+            "        <ll9>abc</ll9>\n" +
+            "        <ll9>abc</ll9>\n" +
+            "        <leaf28>abc</leaf28>\n" +
+            "    </cont13>\n" +
+            "    <ll10>abc</ll10>\n" +
+            "    <ll10>abc</ll10>\n" +
+            "</input>\n";
+
+    static final String DECODE_FROM_XML_RPC = "<?xml version=\"1.0\" encodi" +
+            "ng=\"UTF-8\" standalone=\"no\"?>\n" +
+            "<output xmlns=\"urn:opendaylight:params:xml:ns:yang:test\">\n" +
+            "    <cont16>\n" +
+            "        <leaf32>abc</leaf32>\n" +
+            "    </cont16>\n" +
+            "    <list11>\n" +
+            "        <leaf33>abc</leaf33>\n" +
+            "    </list11>\n" +
+            "    <list11>\n" +
+            "        <leaf33>abc</leaf33>\n" +
+            "    </list11>\n" +
+            "    <leaf34>abc</leaf34>\n" +
+            "    <ll11>abc</ll11>\n" +
+            "    <ll11>abc</ll11>\n" +
+            "    <cont17>\n" +
+            "        <leaf35>abc</leaf35>\n" +
+            "    </cont17>\n" +
+            "    <cont13>\n" +
+            "        <cont12>\n" +
+            "            <leaf26>abc</leaf26>\n" +
+            "        </cont12>\n" +
+            "        <list9>\n" +
+            "            <leaf27>abc</leaf27>\n" +
+            "        </list9>\n" +
+            "        <list9>\n" +
+            "            <leaf27>abc</leaf27>\n" +
+            "        </list9>\n" +
+            "        <ll9>abc</ll9>\n" +
+            "        <ll9>abc</ll9>\n" +
+            "        <leaf28>abc</leaf28>\n" +
+            "    </cont13>\n" +
+            "</output>";
+}