2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * * Copyright (C) 2017 AT&T Intellectual Property.
 
   6  * ================================================================================
 
   7  * Copyright (C) 2018 Samsung Electronics. All rights
 
   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
 
  14  *      http://www.apache.org/licenses/LICENSE-2.0
 
  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=========================================================
 
  24 package jtest.org.onap.ccsdk.sli.plugins.sshapicall;
 
  26 import java.util.HashMap;
 
  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;
 
  36 public class TestXmlJsonUtil {
 
  38     private static final Logger log = LoggerFactory.getLogger(TestXmlJsonUtil.class);
 
  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");
 
  80         mm.put("service-data.vnf-config-parameters-list.vnf-config-parameters[0].access-net-pcscf_length", "4");
 
  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");
 
  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");
 
  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");
 
 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");
 
 117         mm.put("service-data.vnf-config-parameters-list." +
 
 118                 "vnf-config-parameters[0].core-net-pcscf_length", "1");
 
 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");
 
 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");
 
 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");
 
 135         mm.put("service-data.vnf-config-information.escape-test",
 
 136                 "blah blah \"xxx&nnn<>\\'\"there>blah<&''\"\"123\\\\\\'''blah blah &");
 
 138         String ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-parameters-list");
 
 141         ss = XmlJsonUtil.getXml(mm, "service-data.vnf-config-information");
 
 144         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-parameters-list.vnf-config-parameters");
 
 147         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information");
 
 150         ss = XmlJsonUtil.getJson(mm, "service-data.vnf-config-information.vnf-host-ip-address");
 
 153         ss = XmlJsonUtil.getJson(mm, "\"service-data.vnf-config-information.vnf-host-ip-address");
 
 158     public void testRemoveEmptyStructXml() {
 
 187                 "    <T18>blah blah</T18>\n" +
 
 190         String xmloutexpected = "" +
 
 195                 "    <T18>blah blah</T18>\n" +
 
 198         String xmlout = XmlJsonUtil.removeEmptyStructXml(xmlin);
 
 201         Assert.assertEquals(xmloutexpected, xmlout);
 
 205     public void testRemoveEmptyStructJson() {
 
 206         String xmlin = "{\r\n" +
 
 216                 "                \"T13\":[   ],\r\n" +
 
 235                 "                    \"T10\":\"blah\",\r\n" +
 
 246         String xmloutexpected = "{\r\n" +
 
 251                 "                    \"T10\":\"blah\",\r\n" +
 
 259         String xmlout = XmlJsonUtil.removeEmptyStructJson(xmlin);
 
 262         Assert.assertEquals(xmloutexpected, xmlout);