2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
 
   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
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  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=========================================================
 
  22 package jtest.org.onap.ccsdk.sli.plugins.restapicall;
 
  24 import java.util.HashMap;
 
  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;
 
  34 public class TestXmlJsonUtil {
 
  36     private static final Logger log = LoggerFactory.getLogger(TestXmlJsonUtil.class);
 
  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");
 
  78         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf_length", "4");
 
  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");
 
  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");
 
  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");
 
 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");
 
 115         mm.put("service-data.vnf-config-parameters-list." +
 
 116                 "vnf-config-parameters[0].core-net-pcscf_length", "1");
 
 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");
 
 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");
 
 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");
 
 133         mm.put("service-data.vnf-config-information.escape-test",
 
 134                 "blah blah \"xxx&nnn<>\\'\"there>blah<&''\"\"123\\\\\\'''blah blah &");
 
 136         String ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-parameters-list");
 
 139         ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-information");
 
 142         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-parameters-list.vnf-config-parameters");
 
 145         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information");
 
 148         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information.vnf-host-ip-address");
 
 151         ss = XmlJsonUtil.getJson(mm, "\"service-data.vnf-config-information.vnf-host-ip-address");
 
 156     public void testRemoveEmptyStructXml() {
 
 185                 "    <T18>blah blah</T18>\n" +
 
 188         String xmloutexpected = "" +
 
 193                 "    <T18>blah blah</T18>\n" +
 
 196         String xmlout = XmlJsonUtil.removeEmptyStructXml(xmlin);
 
 199         Assert.assertEquals(xmloutexpected, xmlout);
 
 203     public void testRemoveEmptyStructJson() {
 
 204         String xmlin = "{\r\n" +
 
 214                 "                \"T13\":[   ],\r\n" +
 
 233                 "                    \"T10\":\"blah\",\r\n" +
 
 244         String xmloutexpected = "{\r\n" +
 
 249                 "                    \"T10\":\"blah\",\r\n" +
 
 257         String xmlout = XmlJsonUtil.removeEmptyStructJson(null, xmlin);
 
 260         Assert.assertEquals(xmloutexpected, xmlout);