From 73f95cc58ceac07b45b151d172397dfc2046f0f6 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 27 Mar 2018 20:47:02 +0000 Subject: Improve code coverage in AAIService module Changes made: * added new unit test PathCreationTest to test CRUD API of AAIService Change-Id: I85f4df8bfed786324db717faf1c1ccc827ffc4dd Issue-ID: CCSDK-149 Signed-off-by: Rich Tabedzki --- .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 4 +- .../sli/adaptors/aai/NamedQueryRequestTest.java | 4 +- .../sli/adaptors/aai/NodesQueryRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/PathCreationTest.java | 200 +++++++++++++++++++++ 4 files changed, 205 insertions(+), 5 deletions(-) create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java index 327e4c652..69541301b 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -42,7 +42,7 @@ public class EchoRequestTest { private static final Logger LOG = LoggerFactory.getLogger(EchoRequestTest.class); - private static AAIRequest request; + private static EchoRequest request; private static AAIService aaiService; @BeforeClass @@ -67,7 +67,7 @@ public class EchoRequestTest { try { url = request.getRequestUrl("GET", null); assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + } catch (UnsupportedEncodingException | MalformedURLException exc) { LOG.error("Failed test", exc); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java index 155945dea..c28a1ed0f 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java @@ -18,7 +18,7 @@ public class NamedQueryRequestTest { private static final Logger LOG = LoggerFactory.getLogger(NamedQueryRequestTest.class); - private static AAIRequest request; + private static NamedQueryRequest request; @BeforeClass public static void setUp() throws Exception { @@ -41,7 +41,7 @@ public class NamedQueryRequestTest { try { url = request.getRequestUrl("GET", null); assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + } catch (UnsupportedEncodingException | MalformedURLException exc) { LOG.error("Failed test", exc); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java index 17ae52207..33b383950 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java @@ -15,7 +15,7 @@ public class NodesQueryRequestTest { private static final Logger LOG = LoggerFactory.getLogger(NodesQueryRequestTest.class); - private static AAIRequest request; + private static NodesQueryRequest request; @BeforeClass public static void setUp() throws Exception { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java new file mode 100755 index 000000000..f9ec9f49b --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java @@ -0,0 +1,200 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.FileReader; +import java.net.URL; +import java.util.Arrays; +import java.util.BitSet; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.ListIterator; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.TreeSet; + +import org.apache.commons.lang3.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.onap.ccsdk.sli.adaptors.aai.AAIServiceUtils; +import org.onap.ccsdk.sli.adaptors.aai.EchoRequest; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class PathCreationTest { + + private static final Logger LOG = LoggerFactory.getLogger(PathCreationTest.class); + + private static AAIService aaiService; + + @BeforeClass + public static void setUp() throws Exception { + aaiService = new AAIService( + AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + static Set resourceNames = new TreeSet(); + static Map tagValues = new LinkedHashMap(); + + + @Test + public void test01() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + File file = new File(this.getClass().getResource("/aai-path.properties").getFile()); + if(!file.exists()) { + fail("File does not exist"); + return; + } + FileReader reader = new FileReader(file); + + Properties properties = new Properties(); + properties.load(reader); + LOG.info("loaded " + properties.size()); + + Set keys = properties.stringPropertyNames(); + + int index = 0; + + for(String key : keys) { + String[] tags = key.split("\\|"); + for(String tag : tags) { + if(!resourceNames.contains(tag)) { + resourceNames.add(tag); + tagValues.put(tag, Integer.toString(++index)); + } + } + BitSet bs = new BitSet(256); + for(String tag : tags) { + String value = tagValues.get(tag); + Integer bitIndex = Integer.parseInt(value) ; + bs.set(bitIndex); + } + String path = properties.getProperty(key); + LOG.info(String.format("bitset %s\t\t%s", bs.toString(), path)); + } + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void test02() { + try { + Map nameValues = new HashMap (); + nameValues.put("pserver.hostname", "USAUTOUFTIL0205UJZZ01"); + + AAIRequest request = AAIRequest.createRequest("pserver", nameValues); + request.addRequestProperty("pserver.hostname", "USAUTOUFTIL0205UJZZ01"); + + URL url = request.getRequestUrl("GET", null); + url.getPath(); + LOG.info("Received response"); + } catch(Exception exc) { + LOG.info("Caught exception", exc); + } + } + + @Test + public void test03() { + HashMap nameValues = new HashMap(); + + String path = +// "/aai/v11/network/site-pair-sets/site-pair-set/a3839637-575e-49b3-abb7-a003b0d4cc35/routing-instances/routing-instance/7f08a85e-716f-4bc2-a4f4-70801b07a5e6"; + "/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25"; + + String[] split = path.split("/"); + + LinkedList list = new LinkedList( Arrays.asList(split)); + ListIterator it = list.listIterator(); + +// for(String tag : split) { + while(it.hasNext()) { + String tag = it.next(); + if(!tag.isEmpty()) { + if(resourceNames.contains(tag)){ + LOG.info(tag); + // get the class from tag + Class clazz = null; + try { + clazz = AAIRequest.getClassFromResource(tag); + String fieldName = AAIServiceUtils.getPrimaryIdFromClass(clazz); + int nextIndex = it.nextIndex(); + + String value = list.get(nextIndex); + if(!StringUtils.isEmpty(value)){ + nameValues.put(String.format("%s.%s", tag, fieldName), value); + switch(tag) { + case "cloud-region": + case "entitlement": + case "license": + case "route-target": + case "service-capability": + case "ctag-pool": + String secondaryFieldName = AAIServiceUtils.getSecondaryIdFromClass(clazz); + if(secondaryFieldName != null) { + value = it.next(); + nameValues.put(String.format("%s.%s", tag, secondaryFieldName), value); + } + break; + default: + break; + } + } + } catch (Exception exc) { + LOG.info("Caught exception", exc); + } + // get id from class + // read the follwoing field + // create relationship data + } + } + } + LOG.info(nameValues.toString()); + } +} -- cgit 1.2.3-korg