[CCSDK-6] Populate seed code
[ccsdk/sli/plugins.git] / restapi-call-node / provider / src / test / java / jtest / org / onap / ccsdk / sli / plugins / restapicall / TestXmlJsonUtil.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2017 ONAP Intellectual Property. All rights
6  *                                              reserved.
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
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
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=========================================================
20  */
21
22 package jtest.org.onap.ccsdk.sli.plugins.restapicall;
23
24 import java.util.HashMap;
25 import java.util.Map;
26
27 import org.junit.Assert;
28 import org.junit.Test;
29 import org.onap.ccsdk.sli.plugins.restapicall.XmlJsonUtil;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
32
33
34 public class TestXmlJsonUtil {
35
36     private static final Logger log = LoggerFactory.getLogger(TestXmlJsonUtil.class);
37
38     @Test
39     public void test() {
40         Map<String, String> mm = new HashMap<>();
41         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].vnf-type", "N-SBG");
42         mm.put("service-data.service-information.service-instance-id", "someinstance001");
43         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].dns-server-ip-address", "10.11.12.13");
44         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].escf-domain-name", "hclab.atttest.com");
45         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3_length", "2");
46         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3[0].snmp-target-v3-id", "1");
47         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3[0].snmp-target-ip-address", "127.0.0.1");
48         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3[0].snmp-security-level", "NO_AUTH_NO_PRIV");
49         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3[1].snmp-target-v3-id", "2");
50         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3[1].snmp-target-ip-address", "192.168.1.8");
51         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].snmp-target-v3[1].snmp-security-level", "NO_AUTH_NO_PRIV");
52         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].dns-ip-address-1", "2001:1890:1001:2224::1");
53         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].dns-ip-address-2", "2001:1890:1001:2424::1");
54         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].diameter-rf-realm-name", "uvp.els-an.att.net");
55         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].diameter-rf-peer-ip-address", "192.168.1.66");
56         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].bgf-controller-ip-address", "192.168.1.186");
57         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].bgf-control-link-name", "mg3/69@192.168.1.226");
58         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].rf-interface-nexthop-ip-address", "10.111.108.150");
59         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].rf-mated-pair-ip-address", "10.111.108.146");
60
61         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf_length", "4");
62
63         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[0].network-name", "UvpbUgnAccess1");
64         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[0].sip-pa-termination-ip-address", "10.111.108.146");
65
66         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[1].network-name", "MIS");
67         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[1].proactive-transcoding-profile", "trinity-transcodingProfile");
68         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[1].next-hop-ip-address", "10.111.108.158");
69         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[1].subnet-mask-length", "10.111.108.154");
70
71         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[2].network-name", "AVPN1");
72         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[2].proactive-transcoding-profile", "trinity-transcodingProfile");
73         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[2].next-hop-ip-address", "10.111.108.166");
74         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[2].subnet-mask-length", "10.111.108.162");
75
76         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[3].network-name", "AVPN1");
77         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[3].proactive-transcoding-profile", "trinity-transcodingProfile");
78         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[3].next-hop-ip-address", "10.129.108.166");
79         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf[3].subnet-mask-length", "10.129.108.162");
80
81         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].core-net-pcscf_length", "1");
82
83         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].core-net-pcscf[0].network-name", "Core");
84         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].core-net-pcscf[0].next-hop-ip-address", "10.111.108.142");
85         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].core-net-pcscf[0].sip-pa-termination-ip-address", "10.111.108.138");
86
87         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].mated-pair-fully-qualified-domain-name", "mt1nj01sbg01pyl-mt1nj01sbg02pyl.ar1ga.uvp.els-an.att.net");
88
89         mm.put("service-data.appc-request-header.svc-request-id", "SOMESERVICEREQUEST123451000");
90         mm.put("service-data.vnf-config-information.vnf-host-ip-address", "192.168.13.151");
91         mm.put("service-data.vnf-config-information.vendor", "Netconf");
92
93         mm.put("service-data.vnf-config-information.escape-test", "blah blah \"xxx&nnn<>\\'\"there>blah<&''\"\"123\\\\\\'''blah blah &");
94
95         String ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-parameters-list");
96         log.info(ss);
97
98         ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-information");
99         log.info(ss);
100
101         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-parameters-list.vnf-config-parameters");
102         log.info(ss);
103
104         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information");
105         log.info(ss);
106     }
107
108     @Test
109     public void testRemoveEmptyStructXml() {
110         String xmlin = "" +
111                 "<T1>\n" +
112                 "    <T2>\n" +
113                 "        <T3>\n" +
114                 "            <T4></T4>\n" +
115                 "            <T5>     </T5>\n" +
116                 "            <T6>\n" +
117                 "            </T6>\n" +
118                 "        </T3>\n" +
119                 "        <T7>blah</T7>\n" +
120                 "    </T2>\n" +
121                 "    <T8>\n" +
122                 "        <T9>\n" +
123                 "            <T10></T10>\n" +
124                 "            <T11>      </T11>\n" +
125                 "            <T12>\n" +
126                 "            </T12>\n" +
127                 "        </T9>\n" +
128                 "        <T13>\n" +
129                 "            <T14></T14>\n" +
130                 "            <T15>     </T15>\n" +
131                 "            <T16>\n" +
132                 "                <T17></T17>\n" +
133                 "            </T16>\n" +
134                 "        </T13>\n" +
135                 "        <T17>\n" +
136                 "        </T17>\n" +
137                 "    </T8>\n" +
138                 "    <T18>blah blah</T18>\n" +
139                 "</T1>\n";
140
141         String xmloutexpected = "" +
142                 "<T1>\n" +
143                 "    <T2>\n" +
144                 "        <T7>blah</T7>\n" +
145                 "    </T2>\n" +
146                 "    <T18>blah blah</T18>\n" +
147                 "</T1>\n";
148
149         String xmlout = XmlJsonUtil.removeEmptyStructXml(xmlin);
150         log.info(xmlout);
151
152         Assert.assertEquals(xmloutexpected, xmlout);
153     }
154
155     @Test
156     public void testRemoveEmptyStructJson() {
157         String xmlin = "{\r\n" +
158                 "    \"T1\":{\r\n" +
159                 "        \"T2\":{\r\n" +
160                 "            \"T3\":[\r\n" +
161                 "                                \r\n" +
162                 "            ],\r\n" +
163                 "            \"T4\":{\r\n" +
164                 "                \"T12\":[\r\n" +
165                 "                    \r\n" +
166                 "                ],\r\n" +
167                 "                \"T13\":[   ],\r\n" +
168                 "                \"T14\":{\r\n" +
169                 "                    \"T15\":{\r\n" +
170                 "                        \r\n" +
171                 "                    },\r\n" +
172                 "                    \"T16\":{\r\n" +
173                 "                        \r\n" +
174                 "                    }\r\n" +
175                 "                }\r\n" +
176                 "            },\r\n" +
177                 "            \"T5\":{\r\n" +
178                 "                \"T6\":[\r\n" +
179                 "                    \r\n" +
180                 "                ],\r\n" +
181                 "                \"T7\":[\r\n" +
182                 "                    \"T8\":{\r\n" +
183                 "                        \r\n" +
184                 "                    },\r\n" +
185                 "                    \"T9\":{    },\r\n" +
186                 "                    \"T10\":\"blah\",\r\n" +
187                 "                    \"T11\":[\r\n" +
188                 "                        \r\n" +
189                 "                    ]\r\n" +
190                 "                ]\r\n" +
191                 "            }\r\n" +
192                 "        }\r\n" +
193                 "    }\r\n" +
194                 "}\r\n" +
195                 "";
196
197         String xmloutexpected = "{\r\n" +
198                 "    \"T1\":{\r\n" +
199                 "        \"T2\":{\r\n" +
200                 "            \"T5\":{\r\n" +
201                 "                \"T7\":[\r\n" +
202                 "                    \"T10\":\"blah\",\r\n" +
203                 "                ]\r\n" +
204                 "            }\r\n" +
205                 "        }\r\n" +
206                 "    }\r\n" +
207                 "}\r\n" +
208                 "";
209
210         String xmlout = XmlJsonUtil.removeEmptyStructJson(xmlin);
211         log.info(xmlout);
212
213         Assert.assertEquals(xmloutexpected, xmlout);
214     }
215 }