aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/org/onap/pomba/contextbuilder
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/onap/pomba/contextbuilder')
-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
2 files changed, 314 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);
+ }
+ }
}