Conform ccsdk/sli/plugins to ONAP Style
[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 AT&T 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." +
44                 "vnf-config-parameters[0].dns-server-ip-address", "10.11.12.13");
45         mm.put("service-data.vnf-config-parameters-list." +
46                 "vnf-config-parameters[0].escf-domain-name", "hclab.atttest.com");
47         mm.put("service-data.vnf-config-parameters-list." +
48                 "vnf-config-parameters[0].snmp-target-v3_length", "2");
49         mm.put("service-data.vnf-config-parameters-list." +
50                 "vnf-config-parameters[0].snmp-target-v3[0].snmp-target-v3-id", "1");
51         mm.put("service-data.vnf-config-parameters-list." +
52                 "vnf-config-parameters[0].snmp-target-v3[0].snmp-target-ip-address", "127.0.0.1");
53         mm.put("service-data.vnf-config-parameters-list." +
54                 "vnf-config-parameters[0].snmp-target-v3[0].snmp-security-level", "NO_AUTH_NO_PRIV");
55         mm.put("service-data.vnf-config-parameters-list." +
56                 "vnf-config-parameters[0].snmp-target-v3[1].snmp-target-v3-id", "2");
57         mm.put("service-data.vnf-config-parameters-list." +
58                 "vnf-config-parameters[0].snmp-target-v3[1].snmp-target-ip-address", "192.168.1.8");
59         mm.put("service-data.vnf-config-parameters-list." +
60                 "vnf-config-parameters[0].snmp-target-v3[1].snmp-security-level", "NO_AUTH_NO_PRIV");
61         mm.put("service-data.vnf-config-parameters-list." +
62                 "vnf-config-parameters[0].dns-ip-address-1", "2001:1890:1001:2224::1");
63         mm.put("service-data.vnf-config-parameters-list." +
64                 "vnf-config-parameters[0].dns-ip-address-2", "2001:1890:1001:2424::1");
65         mm.put("service-data.vnf-config-parameters-list." +
66                 "vnf-config-parameters[0].diameter-rf-realm-name", "uvp.els-an.att.net");
67         mm.put("service-data.vnf-config-parameters-list." +
68                 "vnf-config-parameters[0].diameter-rf-peer-ip-address", "192.168.1.66");
69         mm.put("service-data.vnf-config-parameters-list." +
70                 "vnf-config-parameters[0].bgf-controller-ip-address", "192.168.1.186");
71         mm.put("service-data.vnf-config-parameters-list." +
72                 "vnf-config-parameters[0].bgf-control-link-name", "mg3/69@192.168.1.226");
73         mm.put("service-data.vnf-config-parameters-list." +
74                 "vnf-config-parameters[0].rf-interface-nexthop-ip-address", "10.111.108.150");
75         mm.put("service-data.vnf-config-parameters-list." +
76                 "vnf-config-parameters[0].rf-mated-pair-ip-address", "10.111.108.146");
77
78         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf_length", "4");
79
80         mm.put("service-data.vnf-config-parameters-list." +
81                 "vnf-config-parameters[0].access-net-pcscf[0].network-name", "UvpbUgnAccess1");
82         mm.put("service-data.vnf-config-parameters-list." +
83                 "vnf-config-parameters[0].access-net-pcscf[0].sip-pa-termination-ip-address", "10.111.108.146");
84
85         mm.put("service-data.vnf-config-parameters-list." +
86                 "vnf-config-parameters[0].access-net-pcscf[1].network-name", "MIS");
87         mm.put("service-data.vnf-config-parameters-list." +
88                 "vnf-config-parameters[0].access-net-pcscf[1].proactive-transcoding-profile",
89                 "trinity-transcodingProfile");
90         mm.put("service-data.vnf-config-parameters-list." +
91                 "vnf-config-parameters[0].access-net-pcscf[1].next-hop-ip-address", "10.111.108.158");
92         mm.put("service-data.vnf-config-parameters-list." +
93                 "vnf-config-parameters[0].access-net-pcscf[1].subnet-mask-length", "10.111.108.154");
94
95         mm.put("service-data.vnf-config-parameters-list." +
96                 "vnf-config-parameters[0].access-net-pcscf[2].network-name", "AVPN1");
97         mm.put("service-data.vnf-config-parameters-list." +
98                 "vnf-config-parameters[0].access-net-pcscf[2].proactive-transcoding-profile",
99                 "trinity-transcodingProfile");
100         mm.put("service-data.vnf-config-parameters-list." +
101                 "vnf-config-parameters[0].access-net-pcscf[2].next-hop-ip-address", "10.111.108.166");
102         mm.put("service-data.vnf-config-parameters-list." +
103                 "vnf-config-parameters[0].access-net-pcscf[2].subnet-mask-length", "10.111.108.162");
104
105         mm.put("service-data.vnf-config-parameters-list." +
106                 "vnf-config-parameters[0].access-net-pcscf[3].network-name", "AVPN1");
107         mm.put("service-data.vnf-config-parameters-list." +
108                 "vnf-config-parameters[0].access-net-pcscf[3].proactive-transcoding-profile",
109                 "trinity-transcodingProfile");
110         mm.put("service-data.vnf-config-parameters-list." +
111                 "vnf-config-parameters[0].access-net-pcscf[3].next-hop-ip-address", "10.129.108.166");
112         mm.put("service-data.vnf-config-parameters-list." +
113                 "vnf-config-parameters[0].access-net-pcscf[3].subnet-mask-length", "10.129.108.162");
114
115         mm.put("service-data.vnf-config-parameters-list." +
116                 "vnf-config-parameters[0].core-net-pcscf_length", "1");
117
118         mm.put("service-data.vnf-config-parameters-list." +
119                 "vnf-config-parameters[0].core-net-pcscf[0].network-name", "Core");
120         mm.put("service-data.vnf-config-parameters-list." +
121                 "vnf-config-parameters[0].core-net-pcscf[0].next-hop-ip-address", "10.111.108.142");
122         mm.put("service-data.vnf-config-parameters-list." +
123                 "vnf-config-parameters[0].core-net-pcscf[0].sip-pa-termination-ip-address", "10.111.108.138");
124
125         mm.put("service-data.vnf-config-parameters-list." +
126                 "vnf-config-parameters[0].mated-pair-fully-qualified-domain-name",
127                 "mt1nj01sbg01pyl-mt1nj01sbg02pyl.ar1ga.uvp.els-an.att.net");
128
129         mm.put("service-data.appc-request-header.svc-request-id", "SOMESERVICEREQUEST123451000");
130         mm.put("service-data.vnf-config-information.vnf-host-ip-address", "192.168.13.151");
131         mm.put("service-data.vnf-config-information.vendor", "Netconf");
132
133         mm.put("service-data.vnf-config-information.escape-test",
134                 "blah blah \"xxx&nnn<>\\'\"there>blah<&''\"\"123\\\\\\'''blah blah &");
135
136         String ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-parameters-list");
137         log.info(ss);
138
139         ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-information");
140         log.info(ss);
141
142         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-parameters-list.vnf-config-parameters");
143         log.info(ss);
144
145         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information");
146         log.info(ss);
147     }
148
149     @Test
150     public void testRemoveEmptyStructXml() {
151         String xmlin = "" +
152                 "<T1>\n" +
153                 "    <T2>\n" +
154                 "        <T3>\n" +
155                 "            <T4></T4>\n" +
156                 "            <T5>     </T5>\n" +
157                 "            <T6>\n" +
158                 "            </T6>\n" +
159                 "        </T3>\n" +
160                 "        <T7>blah</T7>\n" +
161                 "    </T2>\n" +
162                 "    <T8>\n" +
163                 "        <T9>\n" +
164                 "            <T10></T10>\n" +
165                 "            <T11>      </T11>\n" +
166                 "            <T12>\n" +
167                 "            </T12>\n" +
168                 "        </T9>\n" +
169                 "        <T13>\n" +
170                 "            <T14></T14>\n" +
171                 "            <T15>     </T15>\n" +
172                 "            <T16>\n" +
173                 "                <T17></T17>\n" +
174                 "            </T16>\n" +
175                 "        </T13>\n" +
176                 "        <T17>\n" +
177                 "        </T17>\n" +
178                 "    </T8>\n" +
179                 "    <T18>blah blah</T18>\n" +
180                 "</T1>\n";
181
182         String xmloutexpected = "" +
183                 "<T1>\n" +
184                 "    <T2>\n" +
185                 "        <T7>blah</T7>\n" +
186                 "    </T2>\n" +
187                 "    <T18>blah blah</T18>\n" +
188                 "</T1>\n";
189
190         String xmlout = XmlJsonUtil.removeEmptyStructXml(xmlin);
191         log.info(xmlout);
192
193         Assert.assertEquals(xmloutexpected, xmlout);
194     }
195
196     @Test
197     public void testRemoveEmptyStructJson() {
198         String xmlin = "{\r\n" +
199                 "    \"T1\":{\r\n" +
200                 "        \"T2\":{\r\n" +
201                 "            \"T3\":[\r\n" +
202                 "                                \r\n" +
203                 "            ],\r\n" +
204                 "            \"T4\":{\r\n" +
205                 "                \"T12\":[\r\n" +
206                 "                    \r\n" +
207                 "                ],\r\n" +
208                 "                \"T13\":[   ],\r\n" +
209                 "                \"T14\":{\r\n" +
210                 "                    \"T15\":{\r\n" +
211                 "                        \r\n" +
212                 "                    },\r\n" +
213                 "                    \"T16\":{\r\n" +
214                 "                        \r\n" +
215                 "                    }\r\n" +
216                 "                }\r\n" +
217                 "            },\r\n" +
218                 "            \"T5\":{\r\n" +
219                 "                \"T6\":[\r\n" +
220                 "                    \r\n" +
221                 "                ],\r\n" +
222                 "                \"T7\":[\r\n" +
223                 "                    \"T8\":{\r\n" +
224                 "                        \r\n" +
225                 "                    },\r\n" +
226                 "                    \"T9\":{    },\r\n" +
227                 "                    \"T10\":\"blah\",\r\n" +
228                 "                    \"T11\":[\r\n" +
229                 "                        \r\n" +
230                 "                    ]\r\n" +
231                 "                ]\r\n" +
232                 "            }\r\n" +
233                 "        }\r\n" +
234                 "    }\r\n" +
235                 "}\r\n" +
236                 "";
237
238         String xmloutexpected = "{\r\n" +
239                 "    \"T1\":{\r\n" +
240                 "        \"T2\":{\r\n" +
241                 "            \"T5\":{\r\n" +
242                 "                \"T7\":[\r\n" +
243                 "                    \"T10\":\"blah\",\r\n" +
244                 "                ]\r\n" +
245                 "            }\r\n" +
246                 "        }\r\n" +
247                 "    }\r\n" +
248                 "}\r\n" +
249                 "";
250
251         String xmlout = XmlJsonUtil.removeEmptyStructJson(xmlin);
252         log.info(xmlout);
253
254         Assert.assertEquals(xmloutexpected, xmlout);
255     }
256 }