Replacing ":" by "_" for parameters
[ccsdk/sli/plugins.git] / sshapi-call-node / provider / src / test / java / jtest / org / onap / ccsdk / sli / plugins / sshapicall / TestXmlJsonUtil.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2018 Samsung Electronics. All rights
8  *                      reserved.
9  * ================================================================================
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  * 
14  *      http://www.apache.org/licenses/LICENSE-2.0
15  * 
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  * ============LICENSE_END=========================================================
22  */
23
24 package jtest.org.onap.ccsdk.sli.plugins.sshapicall;
25
26 import java.util.HashMap;
27 import java.util.Map;
28
29 import org.junit.Assert;
30 import org.junit.Test;
31 import org.onap.ccsdk.sli.plugins.sshapicall.model.XmlJsonUtil;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34
35
36 public class TestXmlJsonUtil {
37
38     private static final Logger log = LoggerFactory.getLogger(TestXmlJsonUtil.class);
39
40     @Test
41     public void test() {
42         Map<String, String> mm = new HashMap<>();
43         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].vnf-type", "N-SBG");
44         mm.put("service-data.service-information.service-instance-id", "someinstance001");
45         mm.put("service-data.vnf-config-parameters-list." +
46                 "vnf-config-parameters[0].dns-server-ip-address", "10.11.12.13");
47         mm.put("service-data.vnf-config-parameters-list." +
48                 "vnf-config-parameters[0].escf-domain-name", "hclab.atttest.com");
49         mm.put("service-data.vnf-config-parameters-list." +
50                 "vnf-config-parameters[0].snmp-target-v3_length", "2");
51         mm.put("service-data.vnf-config-parameters-list." +
52                 "vnf-config-parameters[0].snmp-target-v3[0].snmp-target-v3-id", "1");
53         mm.put("service-data.vnf-config-parameters-list." +
54                 "vnf-config-parameters[0].snmp-target-v3[0].snmp-target-ip-address", "127.0.0.1");
55         mm.put("service-data.vnf-config-parameters-list." +
56                 "vnf-config-parameters[0].snmp-target-v3[0].snmp-security-level", "NO_AUTH_NO_PRIV");
57         mm.put("service-data.vnf-config-parameters-list." +
58                 "vnf-config-parameters[0].snmp-target-v3[1].snmp-target-v3-id", "2");
59         mm.put("service-data.vnf-config-parameters-list." +
60                 "vnf-config-parameters[0].snmp-target-v3[1].snmp-target-ip-address", "192.168.1.8");
61         mm.put("service-data.vnf-config-parameters-list." +
62                 "vnf-config-parameters[0].snmp-target-v3[1].snmp-security-level", "NO_AUTH_NO_PRIV");
63         mm.put("service-data.vnf-config-parameters-list." +
64                 "vnf-config-parameters[0].dns-ip-address-1", "2001:1890:1001:2224::1");
65         mm.put("service-data.vnf-config-parameters-list." +
66                 "vnf-config-parameters[0].dns-ip-address-2", "2001:1890:1001:2424::1");
67         mm.put("service-data.vnf-config-parameters-list." +
68                 "vnf-config-parameters[0].diameter-rf-realm-name", "uvp.els-an.att.net");
69         mm.put("service-data.vnf-config-parameters-list." +
70                 "vnf-config-parameters[0].diameter-rf-peer-ip-address", "192.168.1.66");
71         mm.put("service-data.vnf-config-parameters-list." +
72                 "vnf-config-parameters[0].bgf-controller-ip-address", "192.168.1.186");
73         mm.put("service-data.vnf-config-parameters-list." +
74                 "vnf-config-parameters[0].bgf-control-link-name", "mg3/69@192.168.1.226");
75         mm.put("service-data.vnf-config-parameters-list." +
76                 "vnf-config-parameters[0].rf-interface-nexthop-ip-address", "10.111.108.150");
77         mm.put("service-data.vnf-config-parameters-list." +
78                 "vnf-config-parameters[0].rf-mated-pair-ip-address", "10.111.108.146");
79
80         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf_length", "4");
81
82         mm.put("service-data.vnf-config-parameters-list." +
83                 "vnf-config-parameters[0].access-net-pcscf[0].network-name", "UvpbUgnAccess1");
84         mm.put("service-data.vnf-config-parameters-list." +
85                 "vnf-config-parameters[0].access-net-pcscf[0].sip-pa-termination-ip-address", "10.111.108.146");
86
87         mm.put("service-data.vnf-config-parameters-list." +
88                 "vnf-config-parameters[0].access-net-pcscf[1].network-name", "MIS");
89         mm.put("service-data.vnf-config-parameters-list." +
90                 "vnf-config-parameters[0].access-net-pcscf[1].proactive-transcoding-profile",
91                 "trinity-transcodingProfile");
92         mm.put("service-data.vnf-config-parameters-list." +
93                 "vnf-config-parameters[0].access-net-pcscf[1].next-hop-ip-address", "10.111.108.158");
94         mm.put("service-data.vnf-config-parameters-list." +
95                 "vnf-config-parameters[0].access-net-pcscf[1].subnet-mask-length", "10.111.108.154");
96
97         mm.put("service-data.vnf-config-parameters-list." +
98                 "vnf-config-parameters[0].access-net-pcscf[2].network-name", "AVPN1");
99         mm.put("service-data.vnf-config-parameters-list." +
100                 "vnf-config-parameters[0].access-net-pcscf[2].proactive-transcoding-profile",
101                 "trinity-transcodingProfile");
102         mm.put("service-data.vnf-config-parameters-list." +
103                 "vnf-config-parameters[0].access-net-pcscf[2].next-hop-ip-address", "10.111.108.166");
104         mm.put("service-data.vnf-config-parameters-list." +
105                 "vnf-config-parameters[0].access-net-pcscf[2].subnet-mask-length", "10.111.108.162");
106
107         mm.put("service-data.vnf-config-parameters-list." +
108                 "vnf-config-parameters[0].access-net-pcscf[3].network-name", "AVPN1");
109         mm.put("service-data.vnf-config-parameters-list." +
110                 "vnf-config-parameters[0].access-net-pcscf[3].proactive-transcoding-profile",
111                 "trinity-transcodingProfile");
112         mm.put("service-data.vnf-config-parameters-list." +
113                 "vnf-config-parameters[0].access-net-pcscf[3].next-hop-ip-address", "10.129.108.166");
114         mm.put("service-data.vnf-config-parameters-list." +
115                 "vnf-config-parameters[0].access-net-pcscf[3].subnet-mask-length", "10.129.108.162");
116
117         mm.put("service-data.vnf-config-parameters-list." +
118                 "vnf-config-parameters[0].core-net-pcscf_length", "1");
119
120         mm.put("service-data.vnf-config-parameters-list." +
121                 "vnf-config-parameters[0].core-net-pcscf[0].network-name", "Core");
122         mm.put("service-data.vnf-config-parameters-list." +
123                 "vnf-config-parameters[0].core-net-pcscf[0].next-hop-ip-address", "10.111.108.142");
124         mm.put("service-data.vnf-config-parameters-list." +
125                 "vnf-config-parameters[0].core-net-pcscf[0].sip-pa-termination-ip-address", "10.111.108.138");
126
127         mm.put("service-data.vnf-config-parameters-list." +
128                 "vnf-config-parameters[0].mated-pair-fully-qualified-domain-name",
129                 "mt1nj01sbg01pyl-mt1nj01sbg02pyl.ar1ga.uvp.els-an.att.net");
130
131         mm.put("service-data.appc-request-header.svc-request-id", "SOMESERVICEREQUEST123451000");
132         mm.put("service-data.vnf-config-information.vnf-host-ip-address", "192.168.13.151");
133         mm.put("service-data.vnf-config-information.vendor", "Netconf");
134
135         mm.put("service-data.vnf-config-information.escape-test",
136                 "blah blah \"xxx&nnn<>\\'\"there>blah<&''\"\"123\\\\\\'''blah blah &");
137
138         String ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-parameters-list");
139         log.info(ss);
140
141         ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-information");
142         log.info(ss);
143
144         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-parameters-list.vnf-config-parameters");
145         log.info(ss);
146
147         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information");
148         log.info(ss);
149
150         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information.vnf-host-ip-address");
151         log.info(ss);
152
153         ss = XmlJsonUtil.getJson(mm, "\"service-data.vnf-config-information.vnf-host-ip-address");
154         log.info(ss);
155     }
156
157     @Test
158     public void testRemoveEmptyStructXml() {
159         String xmlin = "" +
160                 "<T1>\n" +
161                 "    <T2>\n" +
162                 "        <T3>\n" +
163                 "            <T4></T4>\n" +
164                 "            <T5>     </T5>\n" +
165                 "            <T6>\n" +
166                 "            </T6>\n" +
167                 "        </T3>\n" +
168                 "        <T7>blah</T7>\n" +
169                 "    </T2>\n" +
170                 "    <T8>\n" +
171                 "        <T9>\n" +
172                 "            <T10></T10>\n" +
173                 "            <T11>      </T11>\n" +
174                 "            <T12>\n" +
175                 "            </T12>\n" +
176                 "        </T9>\n" +
177                 "        <T13>\n" +
178                 "            <T14></T14>\n" +
179                 "            <T15>     </T15>\n" +
180                 "            <T16>\n" +
181                 "                <T17></T17>\n" +
182                 "            </T16>\n" +
183                 "        </T13>\n" +
184                 "        <T17>\n" +
185                 "        </T17>\n" +
186                 "    </T8>\n" +
187                 "    <T18>blah blah</T18>\n" +
188                 "</T1>\n";
189
190         String xmloutexpected = "" +
191                 "<T1>\n" +
192                 "    <T2>\n" +
193                 "        <T7>blah</T7>\n" +
194                 "    </T2>\n" +
195                 "    <T18>blah blah</T18>\n" +
196                 "</T1>\n";
197
198         String xmlout = XmlJsonUtil.removeEmptyStructXml(xmlin);
199         log.info(xmlout);
200
201         Assert.assertEquals(xmloutexpected, xmlout);
202     }
203
204     @Test
205     public void testRemoveEmptyStructJson() {
206         String xmlin = "{\r\n" +
207                 "    \"T1\":{\r\n" +
208                 "        \"T2\":{\r\n" +
209                 "            \"T3\":[\r\n" +
210                 "                                \r\n" +
211                 "            ],\r\n" +
212                 "            \"T4\":{\r\n" +
213                 "                \"T12\":[\r\n" +
214                 "                    \r\n" +
215                 "                ],\r\n" +
216                 "                \"T13\":[   ],\r\n" +
217                 "                \"T14\":{\r\n" +
218                 "                    \"T15\":{\r\n" +
219                 "                        \r\n" +
220                 "                    },\r\n" +
221                 "                    \"T16\":{\r\n" +
222                 "                        \r\n" +
223                 "                    }\r\n" +
224                 "                }\r\n" +
225                 "            },\r\n" +
226                 "            \"T5\":{\r\n" +
227                 "                \"T6\":[\r\n" +
228                 "                    \r\n" +
229                 "                ],\r\n" +
230                 "                \"T7\":[\r\n" +
231                 "                    \"T8\":{\r\n" +
232                 "                        \r\n" +
233                 "                    },\r\n" +
234                 "                    \"T9\":{    },\r\n" +
235                 "                    \"T10\":\"blah\",\r\n" +
236                 "                    \"T11\":[\r\n" +
237                 "                        \r\n" +
238                 "                    ]\r\n" +
239                 "                ]\r\n" +
240                 "            }\r\n" +
241                 "        }\r\n" +
242                 "    }\r\n" +
243                 "}\r\n" +
244                 "";
245
246         String xmloutexpected = "{\r\n" +
247                 "    \"T1\":{\r\n" +
248                 "        \"T2\":{\r\n" +
249                 "            \"T5\":{\r\n" +
250                 "                \"T7\":[\r\n" +
251                 "                    \"T10\":\"blah\",\r\n" +
252                 "                ]\r\n" +
253                 "            }\r\n" +
254                 "        }\r\n" +
255                 "    }\r\n" +
256                 "}\r\n" +
257                 "";
258
259         String xmlout = XmlJsonUtil.removeEmptyStructJson(xmlin);
260         log.info(xmlout);
261
262         Assert.assertEquals(xmloutexpected, xmlout);
263     }
264 }