aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorPhillip Leigh <phillip.leigh@amdocs.com>2018-07-27 11:18:51 -0400
committerPhillip Leigh <phillip.leigh@amdocs.com>2018-08-15 11:11:37 -0400
commit08496f00787d418976354cb0aa02f0bf0f4b0294 (patch)
treec1f95eeb90264c3769169f8d7de7199c32aee373 /src/test
parent6dcf97a8e2160f9d54a3a155a36f4c4fa7e35f0d (diff)
Stitch btw NetworkDiscovery&ServiceDecomp& CtxAggr
Issue-ID: LOG-599 Change-Id: Ia96ee1f7e586f385a3dc9c4fe0c5ff3badfeeea3 Signed-off-by: Phillip Leigh <phillip.leigh@amdocs.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java103
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java275
-rw-r--r--src/test/resources/junit/networkDiscovery-1.json83
-rw-r--r--src/test/resources/junit/networkDiscoveryResponse-1.json6
-rw-r--r--src/test/resources/junit/serviceDecomposition-1.json461
5 files changed, 864 insertions, 64 deletions
diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java
new file mode 100644
index 0000000..ac5979a
--- /dev/null
+++ b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java
@@ -0,0 +1,103 @@
+/*
+ * ============LICENSE_START===================================================
+ * Copyright (c) 2018 Amdocs
+ * ============================================================================
+ * 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.pomba.contextbuilder.networkdiscovery.test;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.pomba.contextbuilder.networkdiscovery.model.NetworkDiscoveryRspInfo;
+import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryNotification;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
+@WebAppConfiguration
+@SpringBootTest
+@TestPropertySource(properties = { "enricher.url=http://localhost:9505", "serviceDecomposition.host=localhost",
+ "networkDiscoveryMicroService.host=localhost",
+ "networkDiscoveryMicroService.responseTimeOutInMilliseconds=1000" })
+public class NetworkDiscoveryRspInfoTest {
+ NetworkDiscoveryRspInfo networkDiscoveryRspInfo = new NetworkDiscoveryRspInfo();
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public void testGetRequestId() throws Exception {
+ String requestId = "2123";
+ networkDiscoveryRspInfo.setRequestId(requestId);
+ assertEquals(requestId, networkDiscoveryRspInfo.getRequestId());
+ }
+
+ @Test
+ public void testGetResourceType() throws Exception {
+ String resourceType = "vserver";
+ networkDiscoveryRspInfo.setResourceType(resourceType);
+ assertEquals(resourceType, networkDiscoveryRspInfo.getResourceType());
+ }
+
+ @Test
+ public void testGetResourceId() throws Exception {
+ String resourceId = "2123";
+ networkDiscoveryRspInfo.setResourceId(resourceId);
+ assertEquals(resourceId, networkDiscoveryRspInfo.getResourceId());
+ }
+
+ @Test
+ public void testGetLatchSignal() throws Exception {
+ CountDownLatch latchSignal = new CountDownLatch(5);
+ networkDiscoveryRspInfo.setLatchSignal(latchSignal);
+ assertEquals(latchSignal, networkDiscoveryRspInfo.getLatchSignal());
+ }
+
+ @Test
+ public void testGetNetworkDiscoveryNotificationList() throws Exception {
+ NetworkDiscoveryNotification tmpNof = new NetworkDiscoveryNotification();
+ List<NetworkDiscoveryNotification> myList = Arrays.asList(tmpNof);
+
+ networkDiscoveryRspInfo.setNetworkDiscoveryNotificationList(myList);
+ networkDiscoveryRspInfo.toString();
+ assertEquals(myList, networkDiscoveryRspInfo.getNetworkDiscoveryNotificationList());
+ }
+
+ @Test
+ public void testGetRelatedRequestIdList() throws Exception {
+ List<String> myList = Arrays.asList("myTest123");
+
+ networkDiscoveryRspInfo.setRelatedRequestIdList(myList);
+ assertEquals(myList, networkDiscoveryRspInfo.getRelatedRequestIdList());
+ }
+}
diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java
index 16b327b..f5ba694 100644
--- a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java
+++ b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java
@@ -25,21 +25,33 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import com.github.jknack.handlebars.internal.Files;
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Base64;
+import java.util.List;
import java.util.UUID;
+
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.onap.pomba.contextbuilder.networkdiscovery.model.NetworkDiscoveryRspInfo;
+import org.onap.pomba.contextbuilder.networkdiscovery.service.SpringServiceImpl;
import org.onap.pomba.contextbuilder.networkdiscovery.service.rs.RestService;
+import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Attribute;
+import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.DataQuality;
+import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryNotification;
+import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -50,26 +62,31 @@ import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
+import com.github.jknack.handlebars.internal.Files;
+import com.github.tomakehurst.wiremock.client.WireMock;
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
+import com.github.tomakehurst.wiremock.matching.UrlPattern;
+
@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
@WebAppConfiguration
@SpringBootTest
-@TestPropertySource(properties = {
- "serviceDecomposition.host=localhost",
- "serviceDecomposition.port=3333",
- "serviceDecomposition.serviceInstancePath=/service-decomposition/service/context"
- })
+@TestPropertySource(properties = { "serviceDecomposition.host=localhost", "serviceDecomposition.port=3333",
+ "networkDiscoveryMicroService.host=localhost", "networkDiscoveryMicroService.port=9808",
+ "networkDiscoveryMicroService.responseTimeOutInMilliseconds=1000" })
public class NetworkDiscoveryContextBuilderTest {
private String authorization = "Basic "
- + Base64.getEncoder()
- .encodeToString(("admin" + ":" + "admin")
- .getBytes(StandardCharsets.UTF_8));
+ + Base64.getEncoder().encodeToString(("admin" + ":" + "admin").getBytes(StandardCharsets.UTF_8));
private String partnerName = "POMBA";
private String transactionId = UUID.randomUUID().toString();
private String serviceInstanceId = "c6456519-6acf-4adb-997c-3c363dd4caaf";
+ private String requestId = "2131__1";
+ private String resourceType = "vserver";
+ private String resourceId = "25fb07ab-0478-465e-a021-6384ac299671";
HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ NetworkDiscoveryNotification networkDiscoveryNotification = simulateNetworkDiscoveryNotification();
@Autowired
Environment environment;
@@ -79,6 +96,8 @@ public class NetworkDiscoveryContextBuilderTest {
@Rule
public WireMockRule serviceDecompositionRule = new WireMockRule(wireMockConfig().port(3333));
+ @Rule
+ public WireMockRule networkDiscoveryMicroServiceRule = new WireMockRule(wireMockConfig().port(9808));
@Before
public void setUp() throws Exception {
@@ -90,67 +109,36 @@ public class NetworkDiscoveryContextBuilderTest {
@Test
public void testVerifyNoAuthoriztion() throws Exception {
- Response response = this
- .restService
- .getContext(httpServletRequest,
- null,
- partnerName,
- transactionId,
- serviceInstanceId,
- null,
- null);
+ Response response = this.restService.getContext(httpServletRequest, null, partnerName, transactionId,
+ serviceInstanceId, null, null);
assertTrue(response.getEntity().toString().contains("Missing Authorization: "));
- assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus());
+ assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
}
@Test
public void testVerifyBadAuthoriztion() throws Exception {
String authorization = "Basic "
- + Base64.getEncoder()
- .encodeToString(("Test" + ":" + "Fake")
- .getBytes(StandardCharsets.UTF_8));
- Response response = this
- .restService
- .getContext(httpServletRequest,
- authorization,
- partnerName,
- transactionId,
- serviceInstanceId,
- null,
- null);
+ + Base64.getEncoder().encodeToString(("Test" + ":" + "Fake").getBytes(StandardCharsets.UTF_8));
+ Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId,
+ serviceInstanceId, null, null);
assertEquals("Authorization Failed", response.getEntity().toString());
- assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus());
+ assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
}
-
@Test
public void testVerifyPartnerName() throws Exception {
- Response response = this
- .restService
- .getContext(httpServletRequest,
- authorization,
- null,
- transactionId,
- serviceInstanceId,
- null,
- null);
+ Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId,
+ serviceInstanceId, null, null);
assertTrue(response.getEntity().toString().contains("X-ONAP-PartnerName"));
- assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus());
+ assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
}
@Test
public void testVerifyServiceInstanceId() throws Exception {
- Response response = this
- .restService
- .getContext(httpServletRequest,
- authorization,
- partnerName,
- transactionId,
- null,
- null,
- null);
+ Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId,
+ null, null, null);
assertTrue(response.getEntity().toString().contains("serviceInstanceId"));
- assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus());
+ assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
}
@Test
@@ -159,19 +147,178 @@ public class NetworkDiscoveryContextBuilderTest {
String urlStr = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
File file = new File(ClassLoader.getSystemResource("SD_response.json").getFile());
- String sdResonse = new String(Files.read(file));
+ String sdResonse = Files.read(file);
this.serviceDecompositionRule.stubFor(get(urlStr).willReturn(okJson(sdResonse)));
- Response response = this
- .restService
- .getContext(httpServletRequest,
- authorization,
- partnerName,
- transactionId,
- serviceInstanceId,
- null,
- null);
+ addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId,
+ serviceInstanceId, null, null);
+ assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ }
+
+ @Test
+ public void testVerifyGetContext() throws Exception {
+
+ String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
+ addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule);
+ addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+
+ Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId,
+ serviceInstanceId, null, null);
+
+ assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ }
+
+ @Test
+ public void testUnauthorizedNetworkDiscoveryNotfi() throws Exception {
+ String networkDiscoveryCallBackUrl = "/network-discovery/service/networkDiscoveryNotification";
+ addResponse(networkDiscoveryCallBackUrl, "junit/networkDiscovery-1.json", networkDiscoveryMicroServiceRule);
+
+ String badAuthorization = "Basic "
+ + Base64.getEncoder().encodeToString(("Test" + ":" + "Fake").getBytes(StandardCharsets.UTF_8));
+ Response response = this.restService.networkDiscoveryNotification(networkDiscoveryNotification,
+ badAuthorization);
+
+ assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
+ }
+
+ @Test
+ public void testNetworkDiscoveryNotfi() throws Exception {
+ NetworkDiscoveryInfoAccess networkDiscoveryInfoAccess = new NetworkDiscoveryInfoAccess();
+ simulateNetworkDiscoveryInfoList();
+ String networkDiscoveryCallBackUrl = "/network-discovery/service/networkDiscoveryNotification";
+ addResponse(networkDiscoveryCallBackUrl, "junit/networkDiscovery-1.json", networkDiscoveryMicroServiceRule);
+
+ Response response = this.restService.networkDiscoveryNotification(networkDiscoveryNotification, authorization);
+ NetworkDiscoveryRspInfo rsp = networkDiscoveryInfoAccess.getList(requestId);
assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ assertEquals(rsp.getNetworkDiscoveryNotificationList().size(), 1);
}
+ private void addResponse(String path, String classpathResource, WireMockRule thisMock) throws IOException {
+ String payload = readFully(ClassLoader.getSystemResourceAsStream(classpathResource));
+ thisMock.stubFor(get(path).willReturn(okJson(payload)));
+ }
+
+ private void addResponse_any(String classpathResource, WireMockRule thisMock) throws IOException {
+ String payload = readFully(ClassLoader.getSystemResourceAsStream(classpathResource));
+ UrlPattern tPath = WireMock.anyUrl();
+ thisMock.stubFor(get(tPath).willReturn(okJson(payload)));
+ }
+
+ private String readFully(InputStream in) throws IOException {
+ char[] cbuf = new char[1024];
+ StringBuilder content = new StringBuilder();
+ try (InputStreamReader reader = new InputStreamReader(in, "UTF-8")) {
+ int count;
+ while ((count = reader.read(cbuf)) >= 0) {
+ content.append(cbuf, 0, count);
+ }
+ }
+ return content.toString();
+ }
+
+ private NetworkDiscoveryNotification simulateNetworkDiscoveryNotification() {
+ NetworkDiscoveryNotification notification = new NetworkDiscoveryNotification();
+ Resource myResource = new Resource();
+ myResource.setId("25fb07ab-0478-465e-a021-6384ac299671");
+ myResource.setType("vserver");
+ DataQuality dataQuality = new DataQuality();
+ dataQuality.setStatus(DataQuality.Status.ok);
+ myResource.setDataQuality(dataQuality);
+ List<Attribute> attributeList = new ArrayList<>();
+ ;
+ Attribute attribute = new Attribute();
+ attribute.setName("vserver-id");
+ attribute.setValue("25fb07ab-0478-465e-a021-6384ac299671");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("power-state");
+ attribute.setValue("1");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("vm-state");
+ attribute.setValue("active");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("status");
+ attribute.setValue("ACTIVE");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("host-status");
+ attribute.setValue("UNKNOWN");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("updated");
+ attribute.setValue("2017-11-20T04:26:13Z");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("disk-allocation-gb");
+ attribute.setValue(".010");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("memory-usage-mb");
+ attribute.setValue("null");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName("cpu-util-percent");
+ attribute.setValue(".048");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+
+ attribute.setName(".048");
+ attribute.setValue("2018-07-26 01:37:07 +0000");
+ attribute.setDataQuality(dataQuality);
+ attributeList.add(attribute);
+ myResource.setAttributeList(attributeList);
+
+ notification.setResources(Arrays.asList(myResource));
+ notification.setAckFinalIndicator(true);
+ notification.setCode(200);
+ notification.setRequestId(requestId);
+ notification.setMessage("OK");
+
+ return notification;
+ }
+
+ private void simulateNetworkDiscoveryInfoList() {
+ NetworkDiscoveryInfoAccess networkDiscoveryInfoAccess = new NetworkDiscoveryInfoAccess();
+
+ String requestId2 = "2131__2";
+ List<String> related_request_list = new ArrayList<>();
+ related_request_list.add(requestId);
+ related_request_list.add(requestId2);
+
+ NetworkDiscoveryRspInfo notif1 = new NetworkDiscoveryRspInfo();
+ notif1.setRequestId(requestId);
+ notif1.setResourceType(resourceType);
+ notif1.setResourceId(resourceId);
+ notif1.setRelatedRequestIdList(related_request_list);
+ networkDiscoveryInfoAccess.updateList(requestId, notif1);
+
+ NetworkDiscoveryRspInfo notif2 = new NetworkDiscoveryRspInfo();
+ notif2.setRequestId(requestId2);
+ notif2.setResourceType(resourceType);
+ notif2.setResourceId(resourceId);
+ notif2.setRelatedRequestIdList(related_request_list);
+ networkDiscoveryInfoAccess.updateList(requestId2, notif2);
+ }
+
+ private class NetworkDiscoveryInfoAccess extends SpringServiceImpl {
+ public void updateList(String requestId, NetworkDiscoveryRspInfo resp) {
+ super.updateNetworkDiscoveryInfoList(requestId, resp);
+ }
+
+ public NetworkDiscoveryRspInfo getList(String requestId) {
+ return super.getNetworkDiscoveryInfoList(requestId);
+ }
+ }
}
diff --git a/src/test/resources/junit/networkDiscovery-1.json b/src/test/resources/junit/networkDiscovery-1.json
new file mode 100644
index 0000000..6dd844f
--- /dev/null
+++ b/src/test/resources/junit/networkDiscovery-1.json
@@ -0,0 +1,83 @@
+{
+ "requestId": "2131_1",
+ "code": 200,
+ "message": "OK",
+ "ackFinalIndicator": true,
+ "resources": [{
+ "id": "25fb07ab-0478-465e-a021-6384ac299671",
+ "type": "vserver",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [{
+ "name": "vserver-id",
+ "value": "25fb07ab-0478-465e-a021-6384ac299671",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "power-state",
+ "value": "1",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "vm-state",
+ "value": "active",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "status",
+ "value": "ACTIVE",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "host-status",
+ "value": "UNKNOWN",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "updated",
+ "value": "2017-11-20T04:26:13Z",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "disk-allocation-gb",
+ "value": ".010",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "memory-usage-mb",
+ "value": "null",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "cpu-util-percent",
+ "value": ".048",
+ "dataQuality": {
+ "status": "ok"
+ }
+ },
+ {
+ "name": "retrieval-timestamp",
+ "value": "2018-07-26 01:37:07 +0000",
+ "dataQuality": {
+ "status": "ok"
+ }
+ }]
+ }]
+} \ No newline at end of file
diff --git a/src/test/resources/junit/networkDiscoveryResponse-1.json b/src/test/resources/junit/networkDiscoveryResponse-1.json
new file mode 100644
index 0000000..12da468
--- /dev/null
+++ b/src/test/resources/junit/networkDiscoveryResponse-1.json
@@ -0,0 +1,6 @@
+{
+ "requestId": "2131_1",
+ "code": 202,
+ "message": "Accepted",
+ "ackFinalIndicator": false
+} \ No newline at end of file
diff --git a/src/test/resources/junit/serviceDecomposition-1.json b/src/test/resources/junit/serviceDecomposition-1.json
new file mode 100644
index 0000000..10ebe4a
--- /dev/null
+++ b/src/test/resources/junit/serviceDecomposition-1.json
@@ -0,0 +1,461 @@
+{
+ "relationship-list": {
+ "relationship": [{
+ "related-to": "generic-vnf",
+ "relationship-data": [{
+ "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df68",
+ "relationship-key": "generic-vnf.vnf-id"
+ }],
+ "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df68",
+ "related-to-property": [{
+ "property-key": "generic-vnf.vnf-name",
+ "property-value": "PacketGenerator-1"
+ }]
+ },
+ {
+ "related-to": "generic-vnf",
+ "relationship-data": [{
+ "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df69",
+ "relationship-key": "generic-vnf.vnf-id"
+ }],
+ "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df69",
+ "related-to-property": [{
+ "property-key": "generic-vnf.vnf-name",
+ "property-value": "PacketGenerator-2"
+ }]
+ }]
+ },
+ "model-version-id": "d3d6cf83-d03a-43cc-99ff-206d40bb9a72",
+ "service-instance-id": "c6456519-6acf-4adb-997c-3c363dd4caaf",
+ "resource-version": "1527637758480",
+ "generic-vnfs": [{
+ "nf-role": "",
+ "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b7",
+ "relationship-list": {
+ "relationship": [{
+ "related-to": "service-instance",
+ "relationship-data": [{
+ "relationship-value": "Demonstration",
+ "relationship-key": "customer.global-customer-id"
+ },
+ {
+ "relationship-value": "vFWCL",
+ "relationship-key": "service-subscription.service-type"
+ },
+ {
+ "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf",
+ "relationship-key": "service-instance.service-instance-id"
+ }],
+ "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf",
+ "related-to-property": [{
+ "property-key": "service-instance.service-instance-name",
+ "property-value": "Firewall1"
+ }]
+ },
+ {
+ "related-to": "l3-network",
+ "relationship-data": [{
+ "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870",
+ "relationship-key": "l3-network.network-id"
+ }],
+ "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951870",
+ "relationship-label": "org.onap.relationships.inventory.Uses",
+ "related-to-property": [{
+ "property-key": "l3-network.network-name",
+ "property-value": "HNPORTALOAM.OAM"
+ }]
+ },
+ {
+ "related-to": "vserver",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "b49b830686654191bb1e952a74b014ad",
+ "relationship-key": "tenant.tenant-id"
+ },
+ {
+ "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671",
+ "relationship-key": "vserver.vserver-id"
+ }],
+ "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299671"
+ },
+ {
+ "related-to": "vserver",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "b49b830686654191bb1e952a74b014ad",
+ "relationship-key": "tenant.tenant-id"
+ },
+ {
+ "relationship-value": "25fb07ab-0478-465e-a021-6384ac299672",
+ "relationship-key": "vserver.vserver-id"
+ }],
+ "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299672"
+ }]
+ },
+ "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df68",
+ "nf-type": "",
+ "l3-networks": [{
+ "network-role": "HNPORTALOAM.OAM",
+ "network-technology": "ovs",
+ "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870",
+ "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870",
+ "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0",
+ "is-external-network": false,
+ "is-bound-to-vpn": false,
+ "is-provider-network": false,
+ "network-type": "OVS_PROVIDER_VLAN",
+ "orchestration-status": "active",
+ "network-role-instance": 0,
+ "resource-version": "1526558298075",
+ "network-name": "HNPORTALOAM.OAM",
+ "is-shared-network": false
+ }],
+ "prov-status": "PREPROV",
+ "vnf-type": "vFW-vSINK-service/vPKG 0",
+ "orchestration-status": "Created",
+ "nf-naming-code": "",
+ "in-maint": false,
+ "nf-function": "",
+ "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676",
+ "vservers": [{
+ "relationship-list": {
+ "relationship": [{
+ "related-to": "generic-vnf",
+ "relationship-data": [{
+ "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39",
+ "relationship-key": "generic-vnf.vnf-id"
+ }],
+ "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39",
+ "related-to-property": [{
+ "property-key": "generic-vnf.vnf-name",
+ "property-value": "Firewall-1"
+ }]
+ },
+ {
+ "related-to": "flavor",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39",
+ "relationship-key": "flavor.flavor-id"
+ }],
+ "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39",
+ "related-to-property": [{
+ "property-key": "flavor.flavor-name",
+ "property-value": "m1.medium"
+ }]
+ },
+ {
+ "related-to": "image",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b",
+ "relationship-key": "image.image-id"
+ }],
+ "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b",
+ "related-to-property": [{
+ "property-key": "image.image-name",
+ "property-value": "unknown"
+ }]
+ }]
+ },
+ "in-maint": false,
+ "resource-version": "1528481820321",
+ "vserver-name": "Firewall-0",
+ "prov-status": "ACTIVE",
+ "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671",
+ "vserver-name2": "Firewall-0",
+ "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671",
+ "is-closed-loop-disabled": false
+ },
+ {
+ "relationship-list": {
+ "relationship": [{
+ "related-to": "generic-vnf",
+ "relationship-data": [{
+ "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39",
+ "relationship-key": "generic-vnf.vnf-id"
+ }],
+ "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39",
+ "related-to-property": [{
+ "property-key": "generic-vnf.vnf-name",
+ "property-value": "Firewall-1"
+ }]
+ },
+ {
+ "related-to": "flavor",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39",
+ "relationship-key": "flavor.flavor-id"
+ }],
+ "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39",
+ "related-to-property": [{
+ "property-key": "flavor.flavor-name",
+ "property-value": "m1.medium"
+ }]
+ },
+ {
+ "related-to": "image",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b",
+ "relationship-key": "image.image-id"
+ }],
+ "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b",
+ "related-to-property": [{
+ "property-key": "image.image-name",
+ "property-value": "unknown"
+ }]
+ }]
+ },
+ "in-maint": false,
+ "resource-version": "1528481820321",
+ "vserver-name": "Firewall-0",
+ "prov-status": "ACTIVE",
+ "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672",
+ "vserver-name2": "Firewall-0",
+ "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299672",
+ "is-closed-loop-disabled": false
+ }],
+ "resource-version": "1527638176989",
+ "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c",
+ "vf-modules": {
+ "vf-module": [{
+ "vf-module-name": "vPacketGen-VNF-1128-3",
+ "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b",
+ "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2",
+ "resource-version": "1527641224058",
+ "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab",
+ "is-base-vf-module": true,
+ "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1",
+ "module-index": 0,
+ "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e",
+ "orchestration-status": "active"
+ }]
+ },
+ "vserver": [{
+ "vserver-name": "Firewall-1",
+ "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671",
+ "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f"
+ }],
+ "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557",
+ "vnf-name": "PacketGenerator-1",
+ "is-closed-loop-disabled": false
+ },
+ {
+ "nf-role": "",
+ "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b9",
+ "relationship-list": {
+ "relationship": [{
+ "related-to": "service-instance",
+ "relationship-data": [{
+ "relationship-value": "Demonstration",
+ "relationship-key": "customer.global-customer-id"
+ },
+ {
+ "relationship-value": "vFWCL",
+ "relationship-key": "service-subscription.service-type"
+ },
+ {
+ "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf",
+ "relationship-key": "service-instance.service-instance-id"
+ }],
+ "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf",
+ "related-to-property": [{
+ "property-key": "service-instance.service-instance-name",
+ "property-value": "Firewall1"
+ }]
+ },
+ {
+ "related-to": "l3-network",
+ "relationship-data": [{
+ "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870",
+ "relationship-key": "l3-network.network-id"
+ }],
+ "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951871",
+ "relationship-label": "org.onap.relationships.inventory.Uses",
+ "related-to-property": [{
+ "property-key": "l3-network.network-name",
+ "property-value": "HNPORTALOAM.OAM"
+ }]
+ },
+ {
+ "related-to": "vserver",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "b49b830686654191bb1e952a74b014ad",
+ "relationship-key": "tenant.tenant-id"
+ },
+ {
+ "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671",
+ "relationship-key": "vserver.vserver-id"
+ }],
+ "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b"
+ }]
+ },
+ "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df69",
+ "nf-type": "",
+ "l3-networks": [{
+ "network-role": "HNPORTALOAM.OAM",
+ "network-technology": "ovs",
+ "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870",
+ "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870",
+ "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0",
+ "is-external-network": false,
+ "is-bound-to-vpn": false,
+ "is-provider-network": false,
+ "network-type": "OVS_PROVIDER_VLAN",
+ "orchestration-status": "active",
+ "network-role-instance": 0,
+ "resource-version": "1526558298075",
+ "network-name": "HNPORTALOAM.OAM",
+ "is-shared-network": false
+ }],
+ "prov-status": "PREPROV",
+ "vnf-type": "vFW-vSINK-service/vPKG 0",
+ "orchestration-status": "Created",
+ "nf-naming-code": "",
+ "in-maint": false,
+ "nf-function": "",
+ "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676",
+ "vservers": [{
+ "relationship-list": {
+ "relationship": [{
+ "related-to": "generic-vnf",
+ "relationship-data": [{
+ "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39",
+ "relationship-key": "generic-vnf.vnf-id"
+ }],
+ "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39",
+ "related-to-property": [{
+ "property-key": "generic-vnf.vnf-name",
+ "property-value": "Firewall-1"
+ }]
+ },
+ {
+ "related-to": "flavor",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39",
+ "relationship-key": "flavor.flavor-id"
+ }],
+ "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39",
+ "related-to-property": [{
+ "property-key": "flavor.flavor-name",
+ "property-value": "m1.medium"
+ }]
+ },
+ {
+ "related-to": "image",
+ "relationship-data": [{
+ "relationship-value": "CloudOwner",
+ "relationship-key": "cloud-region.cloud-owner"
+ },
+ {
+ "relationship-value": "RegionOne",
+ "relationship-key": "cloud-region.cloud-region-id"
+ },
+ {
+ "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b",
+ "relationship-key": "image.image-id"
+ }],
+ "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b",
+ "related-to-property": [{
+ "property-key": "image.image-name",
+ "property-value": "unknown"
+ }]
+ }]
+ },
+ "in-maint": false,
+ "resource-version": "1528481820321",
+ "vserver-name": "Firewall-0",
+ "prov-status": "ACTIVE",
+ "vserver-id": "b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b",
+ "vserver-name2": "Firewall-0",
+ "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671",
+ "is-closed-loop-disabled": false
+ }],
+ "resource-version": "1527638176989",
+ "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c",
+ "vf-modules": {
+ "vf-module": [{
+ "vf-module-name": "vPacketGen-VNF-1128-3",
+ "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b",
+ "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2",
+ "resource-version": "1527641224058",
+ "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab",
+ "is-base-vf-module": true,
+ "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1",
+ "module-index": 0,
+ "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e",
+ "orchestration-status": "active"
+ }]
+ },
+ "vserver": [{
+ "vserver-name": "Firewall-1",
+ "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672",
+ "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f"
+ }],
+ "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557",
+ "vnf-name": "PacketGenerator-2",
+ "is-closed-loop-disabled": false
+ }],
+ "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f",
+ "service-instance-name": "Firewall1"
+} \ No newline at end of file