diff options
Diffstat (limited to 'pomba/service-decomposition/src/test/java/org/onap/sdnc/apps/pomba/servicedecomposition/test/ServiceDecompositionTest.java')
-rw-r--r-- | pomba/service-decomposition/src/test/java/org/onap/sdnc/apps/pomba/servicedecomposition/test/ServiceDecompositionTest.java | 83 |
1 files changed, 76 insertions, 7 deletions
diff --git a/pomba/service-decomposition/src/test/java/org/onap/sdnc/apps/pomba/servicedecomposition/test/ServiceDecompositionTest.java b/pomba/service-decomposition/src/test/java/org/onap/sdnc/apps/pomba/servicedecomposition/test/ServiceDecompositionTest.java index 37a5518..0680842 100644 --- a/pomba/service-decomposition/src/test/java/org/onap/sdnc/apps/pomba/servicedecomposition/test/ServiceDecompositionTest.java +++ b/pomba/service-decomposition/src/test/java/org/onap/sdnc/apps/pomba/servicedecomposition/test/ServiceDecompositionTest.java @@ -42,6 +42,7 @@ import org.json.JSONObject; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.onap.logging.ref.slf4j.ONAPLogConstants; import org.onap.sdnc.apps.pomba.servicedecomposition.service.rs.RestService; import org.springframework.beans.factory.annotation.Autowired; @@ -63,13 +64,15 @@ import org.springframework.test.context.web.WebAppConfiguration; "aai.servicePort=8081", "basicAuth.username=admin", "basicAuth.password=OBF:1u2a1toa1w8v1tok1u30" -}) + }) public class ServiceDecompositionTest { private static final String AUTH = "Basic " + Base64.getEncoder().encodeToString(( "admin:" + Password.deobfuscate("OBF:1u2a1toa1w8v1tok1u30")).getBytes()); + private HttpServletRequest httpRequest = Mockito.mock(HttpServletRequest.class); + // TODO missing code coverage for VNFC resources @Rule @@ -120,7 +123,6 @@ public class ServiceDecompositionTest { final String networkId1 = "HNP1d77c-1094-41ec-b7f3-94bb30951870"; final String networkId2 = "HNP1d77c-1094-41ec-b7f3-94bb30951872"; - HttpServletRequest httpRequest = new TestHttpServletRequest(); Response response = this.service.getContext(httpRequest, AUTH, "network-discovery-context-builder", null, serviceInstanceId); assertEquals(200, response.getStatus()); @@ -152,12 +154,79 @@ public class ServiceDecompositionTest { } @Test + public void testDemoFirewallServiceWithL3Networks() throws Exception { + // setup A&AI responses + addResponse( + "/aai/v13/nodes/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", + "junit/aai-service-instance2.json"); + addResponse( + "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df68?depth=2", + "junit/aai-generic-vnf1.json"); + addResponse( + "/aai/v13/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39?depth=2", + "junit/aai-generic-vnf2.json"); + addResponse( + "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant" + + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a", + "junit/aai-vserver.json"); + addResponse( + "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951870", + "junit/aai-l3-network1.json"); + addResponse( + "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951872", + "junit/aai-l3-network2.json"); + + final String serviceInstanceId = "c6456519-6acf-4adb-997c-3c363dd4caaf"; + final String vnfId1 = "6700c313-fbb7-4cf9-ac70-0293ec56df68"; + final String vnfId2 = "8a9ddb25-2e79-449c-a40d-5011bac0da39"; + final String vserverId = "b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a"; + final String networkId1 = "HNP1d77c-1094-41ec-b7f3-94bb30951870"; + final String networkId2 = "HNP1d77c-1094-41ec-b7f3-94bb30951872"; + + Response response = this.service.getContext(httpRequest, AUTH, "network-discovery-context-builder", null, + serviceInstanceId); + assertEquals(200, response.getStatus()); + + JSONObject serviceInstance = new JSONObject((String)response.getEntity()); + + // verify two generic-vnfs added to service instance data + verifyResource(serviceInstance, "generic-vnfs", "vnf-id", vnfId1); + verifyResource(serviceInstance, "generic-vnfs", "vnf-id", vnfId2); + verifyResource(serviceInstance, "l3-networks", "network-id", networkId1); + + JSONArray vnfs = serviceInstance.getJSONArray("generic-vnfs"); + for (int i = 0; i < vnfs.length(); i++) { + JSONObject vnf = vnfs.getJSONObject(i); + String vnfId = vnf.getString("vnf-id"); + switch (vnfId) { + case vnfId1: + // verify vserver resource + verifyResource(vnf, "vservers", "vserver-id", vserverId); + break; + case vnfId2: + // verify network resources + verifyResource(vnf, "l3-networks", "network-id", networkId1); + verifyResource(vnf, "l3-networks", "network-id", networkId2); + JSONObject vfmodules = vnf.getJSONObject("vf-modules"); + JSONArray vfmoduleList = vfmodules.getJSONArray("vf-module"); + for (int j = 0; j < vfmoduleList.length(); j++) { + JSONObject vfmodule = vfmoduleList.getJSONObject(j); + verifyResource(vfmodule, "l3-networks", "network-id", networkId1); + } + break; + default: + fail("Unexpected generic-vnf " + vnfId); + } + } + } + + @Test public void testNoAuthHeader() throws Exception { String fromAppId = "junit"; String transactionId = null; String serviceInstanceId = "aServiceInstanceId"; // no Authorization header - Response response = this.service.getContext(new TestHttpServletRequest(), null, fromAppId, transactionId, + Response response = this.service.getContext(httpRequest, null, fromAppId, transactionId, serviceInstanceId); assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus()); // should get WWW-Authenticate header in response @@ -172,7 +241,7 @@ public class ServiceDecompositionTest { String transactionId = null; String serviceInstanceId = "aServiceInstanceId"; - Response response = this.service.getContext(new TestHttpServletRequest(), authorization, fromAppId, + Response response = this.service.getContext(httpRequest, authorization, fromAppId, transactionId, serviceInstanceId); assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus()); // should not get WWW-Authenticate header in response @@ -186,7 +255,7 @@ public class ServiceDecompositionTest { String transactionId = null; String serviceInstanceId = "someValue"; - Response response = this.service.getContext(new TestHttpServletRequest(), AUTH, fromAppId, transactionId, + Response response = this.service.getContext(httpRequest, AUTH, fromAppId, transactionId, serviceInstanceId); assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); assertTrue(((String)response.getEntity()).contains(ONAPLogConstants.Headers.PARTNER_NAME)); @@ -199,7 +268,7 @@ public class ServiceDecompositionTest { String transactionId = null; String serviceInstanceId = null; - Response response = this.service.getContext(new TestHttpServletRequest(), AUTH, fromAppId, transactionId, + Response response = this.service.getContext(httpRequest, AUTH, fromAppId, transactionId, serviceInstanceId); assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); assertTrue(((String)response.getEntity()).contains("service-instance-id")); @@ -211,7 +280,7 @@ public class ServiceDecompositionTest { aai.stubFor(get("/aai/v13/nodes/service-instance/noSuchServiceId").willReturn(notFound())); Response response = - this.service.getContext(new TestHttpServletRequest(), AUTH, "junit", null, "noSuchServiceId"); + this.service.getContext(httpRequest, AUTH, "junit", null, "noSuchServiceId"); assertEquals(Status.NOT_FOUND.getStatusCode(), response.getStatus()); } |