diff options
Diffstat (limited to 'src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/test/RestServiceTest.java')
-rw-r--r-- | src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/test/RestServiceTest.java | 276 |
1 files changed, 263 insertions, 13 deletions
diff --git a/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/test/RestServiceTest.java b/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/test/RestServiceTest.java index 9f82c69..8e50484 100644 --- a/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/test/RestServiceTest.java +++ b/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/test/RestServiceTest.java @@ -139,7 +139,7 @@ public class RestServiceTest { // note: match to vserver-id to the path of "vserver" in (3) addResponse( "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant" - + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a", + + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a" + DEPTH, "junit/aai-vserver.json", aaiEnricherRule); // 5. simulate the rsp of pserver @@ -168,9 +168,10 @@ public class RestServiceTest { } - ///Verify the relationship serviceInstanceId -> vnf -> vserver -> LInterfaceList + ///Verify the relationship serviceInstanceId -> vnf (containing L-Interface) -> vserver (containing - LInterfaceList) + @Test - public void testGetContext_VSERVER_L_interface_List() throws Exception { + public void testGetContext_VSERVER_L_interface_And_Logical_link() throws Exception { String transactionId = UUID.randomUUID().toString(); String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json @@ -190,23 +191,30 @@ public class RestServiceTest { // 3. simulate the rsp of VNF (with 1 vserver) // note: match vnf_id in (2) addResponse( "/aai/v13/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39" + DEPTH, - "junit/genericVnfInput_set2.json", aaiEnricherRule); + "junit/genericVnfInput_set6.json", aaiEnricherRule); // 4. simulate the rsp of vserer // note: match to vserver-id to the path of "vserver" in (3) addResponse( "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant" - + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a", + + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a" + DEPTH, "junit/aai-vserver-set3.json", aaiEnricherRule); - - // 5. simulate the rsp of LInterface - // note: match l-Interface hostname to the path of "l-interface" in (4) + // 5. simulate the rsp of logical-link + // note: match to link-name to the path of "relationship-list" in (3: genericVnfInput_set6) + // and match the link-name to (4 aai-vserver-set3.json) addResponse( - "/aai/v13/l-interfaces/l-interface/junit-l-interface-name1" + DEPTH, - "junit/l-interface-input.json", aaiEnricherRule); + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-1", + "junit/logical-link-input1.json", aaiEnricherRule); addResponse( - "/aai/v13/l-interfaces/l-interface/junit-l-interface-name2" + DEPTH, - "junit/l-interface-input2.json", aaiEnricherRule); + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-2", + "junit/logical-link-input2.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-3", + "junit/logical-link-input3.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-4", + "junit/logical-link-input4.json", aaiEnricherRule); + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); @@ -219,6 +227,13 @@ public class RestServiceTest { // verify results List<VNF> vnfList = modelCtx.getVnfs(); assertEquals(vnfList.size(), 1); + assertEquals(vnfList.get(0).getLInterfaceList().size(), 2); + assertEquals(vnfList.get(0).getLInterfaceList().get(0).getName(), "junit-l-interface-name3"); //l-interface-name + assertEquals(vnfList.get(0).getLInterfaceList().get(1).getName(), "junit-l-interface-name4"); //l-interface-name + assertEquals(vnfList.get(0).getLInterfaceList().get(0).getLogicalLinkList().size(), 1); + assertEquals(vnfList.get(0).getLInterfaceList().get(0).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-3"); //Logical-link at vnf->l-interface -> Logical-link + assertEquals(vnfList.get(0).getLInterfaceList().get(1).getLogicalLinkList().size(), 1); + assertEquals(vnfList.get(0).getLInterfaceList().get(1).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-4"); List<VFModule> vfModuleList = vnfList.get(0).getVfModules(); assertEquals(vfModuleList.size(), 1); List<VM> vmList = vfModuleList.get(0).getVms(); @@ -227,6 +242,11 @@ public class RestServiceTest { assertEquals(vmList.get(0).getLInterfaceList().size(), 2); assertEquals(vmList.get(0).getLInterfaceList().get(0).getName(), "junit-l-interface-name1"); //l-interface-name assertEquals(vmList.get(0).getLInterfaceList().get(1).getName(), "junit-l-interface-name2"); //l-interface-name + assertEquals(vmList.get(0).getLInterfaceList().get(0).getLogicalLinkList().size(), 1); + assertEquals(vmList.get(0).getLInterfaceList().get(0).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-1"); //Logical-link at vserver->l-interface -> Logical-link + assertEquals(vmList.get(0).getLInterfaceList().get(1).getLogicalLinkList().size(), 1); + assertEquals(vmList.get(0).getLInterfaceList().get(1).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-2"); + } ///Verify the relationship serviceInstanceId -> vnf + vnfc @@ -257,7 +277,66 @@ public class RestServiceTest { // note: match to vserver-id to the path of "vserver" in (3) addResponse( "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant" - + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a", + + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a" + DEPTH, + "junit/aai-vserver-set2.json", aaiEnricherRule); + + // 5. simulate the rsp of vnfc + // note: match to vnfc-name to the path of "vnfc" in (3) + addResponse( + "/aai/v13/network/vnfcs/vnfc/junit-vnfc-name1212", + "junit/vnfc-input1.json", aaiEnricherRule); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + + Response response = this.dummyRestSvc.getContext(mockHttpHeaders, httpBasicAuthorization, testRestHeaders, transactionId, + serviceInstanceId); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + Gson gson = new Gson(); + ModelContext modelCtx = gson.fromJson((String) response.getEntity(), ModelContext.class); + // verify results + List<VNF> vnfList = modelCtx.getVnfs(); + assertEquals(vnfList.size(), 1); + List<VFModule> vfModuleList = vnfList.get(0).getVfModules(); + assertEquals(vfModuleList.size(), 1); + List<VM> vmList = vfModuleList.get(0).getVms(); + assertEquals(vmList.size(), 1); + assertEquals(vmList.get(0).getUuid(), "b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a"); //vserver-id + + List<VNFC> vnfcList = vnfList.get(0).getVnfcs(); + assertEquals(vnfcList.size(), 1); + assertEquals(vnfcList.get(0).getName(), "junit-vnfc-name1212"); //vnfc-name + } + + ///Verify the relationship serviceInstanceId -> vnf + vnfc + @Test + public void testGetContext_VNFC2() throws Exception { + + String transactionId = UUID.randomUUID().toString(); + String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json + String queryNodeUrl = aaiPathToSearchNodeQuery + serviceInstanceId; + + // Test with No Partner Name + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + transactionId, testRestHeaders, httpBasicAuthorization); + + // 1. simulate the response to obtainResourceLink based on ServiceInstanceId + addResponse(queryNodeUrl, "junit/queryNodeData-1.json", aaiEnricherRule); + // 2. simulate the response of AAI (1 vnf) + // note: match serviceInstanceId in (1) + addResponse( "/aai/v13/business/customers/customer/DemoCust_651800ed-2a3c-45f5-b920-85c1ed155fc2/service-subscriptions/service-subscription/vFW/service-instances/service-instance/adc3cc2a-c73e-414f-8ddb-367de81300cb", + "junit/aai-service-instance_set2.json", aaiEnricherRule); + + // 3. simulate the rsp of VNF (with 1 vserver) + // note: match vnf_id in (2) + addResponse( "/aai/v13/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39" + DEPTH, + "junit/genericVnfInput_set5.json", aaiEnricherRule); + + // 4. simulate the rsp of vserer + // note: match to vserver-id to the path of "vserver" in (3) + addResponse( + "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant" + + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a" + DEPTH, "junit/aai-vserver-set2.json", aaiEnricherRule); // 5. simulate the rsp of vnfc @@ -287,4 +366,175 @@ public class RestServiceTest { assertEquals(vnfcList.size(), 1); assertEquals(vnfcList.get(0).getName(), "junit-vnfc-name1212"); //vnfc-name } + + ///Verify the relationship serviceInstanceId -> vnf + vnfc + @Test + public void testGetContext_LogicalLink_in_service_level() throws Exception { + String transactionId = UUID.randomUUID().toString(); + String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json + String queryNodeUrl = aaiPathToSearchNodeQuery + serviceInstanceId; + + // Test with No Partner Name + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + transactionId, testRestHeaders, httpBasicAuthorization); + + // 1. simulate the response to obtainResourceLink based on ServiceInstanceId + addResponse(queryNodeUrl, "junit/queryNodeData-1.json", aaiEnricherRule); + // 2. simulate the response of AAI (1 vnf) + // note: match serviceInstanceId in (1) + addResponse( "/aai/v13/business/customers/customer/DemoCust_651800ed-2a3c-45f5-b920-85c1ed155fc2/service-subscriptions/service-subscription/vFW/service-instances/service-instance/adc3cc2a-c73e-414f-8ddb-367de81300cb", + "junit/aai-service-instance_set4.json", aaiEnricherRule); + + // 3. simulate the rsp of logical-link + // note: match to link-name to the path of "relationship-list" in (2: aai-service-instance_set4) + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-1", + "junit/logical-link-input1.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-2", + "junit/logical-link-input2.json", aaiEnricherRule); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + Response response = this.dummyRestSvc.getContext(mockHttpHeaders, httpBasicAuthorization, testRestHeaders, transactionId, + serviceInstanceId); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + Gson gson = new Gson(); + ModelContext modelCtx = gson.fromJson((String) response.getEntity(), ModelContext.class); + assertEquals(modelCtx.getLogicalLinkList().size(), 2); + assertEquals(modelCtx.getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-1"); + assertEquals(modelCtx.getLogicalLinkList().get(1).getName(), "01e8d84a-logical-link-2"); + } + + ///Verify the relationship P-interface, L-interaface, Logical-link + @Test + public void testGetContext_LogicalLink_in_PInterface_level_with_PNF() throws Exception { + String transactionId = UUID.randomUUID().toString(); + String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json + String queryNodeUrl = aaiPathToSearchNodeQuery + serviceInstanceId; + + // Test with No Partner Name + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + transactionId, testRestHeaders, httpBasicAuthorization); + + // 1. simulate the response to obtainResourceLink based on ServiceInstanceId + addResponse(queryNodeUrl, "junit/queryNodeData-1.json", aaiEnricherRule); + // 2. simulate the response of AAI (1 vnf and 1 pnf) + addResponse( "/aai/v13/business/customers/customer/DemoCust_651800ed-2a3c-45f5-b920-85c1ed155fc2/service-subscriptions/service-subscription/vFW/service-instances/service-instance/adc3cc2a-c73e-414f-8ddb-367de81300cb", + "junit/aai-service-instance.json", aaiEnricherRule); + + // 3. simulate the rsp of VNF + addResponse( "/aai/v13/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39" + DEPTH, + "junit/genericVnfInput.json", aaiEnricherRule); + + // 4. simulate the response of PNF based on the resourceLink in (2) + //note: match pnf_id in junit/aai-service-instance.json + addResponse( "/aai/v13/network/pnfs/pnf/amdocsPnfName" + DEPTH, + "junit/pnfInput_w_pInterface_LInterface_set2.json", aaiEnricherRule); + + // 5. simulate the rsp of logical-link + // note: match to link-name to the path of "relationship-list" in (4: pnfInput_w_pInterface_LInterface_set2) + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-1", + "junit/logical-link-input1.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-2", + "junit/logical-link-input2.json", aaiEnricherRule); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + Response response = this.dummyRestSvc.getContext(mockHttpHeaders, httpBasicAuthorization, testRestHeaders, transactionId, + serviceInstanceId); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + Gson gson = new Gson(); + ModelContext modelCtx = gson.fromJson((String) response.getEntity(), ModelContext.class); + assertEquals(modelCtx.getVnfs().size(), 1); + assertEquals(modelCtx.getPnfs().size(), 1); + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().size(), 1); + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().get(0).getLInterfaceList().size(), 2); + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().get(0).getLInterfaceList().get(0).getName(), "junit-l-interface-name5"); //l-interface-name + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().get(0).getLInterfaceList().get(1).getName(), "junit-l-interface-name6"); //l-interface-name + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().get(0).getLogicalLinkList().size(), 2); + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().get(0).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-1"); + assertEquals(modelCtx.getPnfs().get(0).getPInterfaceList().get(0).getLogicalLinkList().get(1).getName(), "01e8d84a-logical-link-2"); + } + + ///Verify the relationship P-interface, L-interaface, Logical-link + @Test + public void testGetContext_LogicalLink_in_PInterface_level_with_PSERVER() throws Exception { + String transactionId = UUID.randomUUID().toString(); + String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json + String queryNodeUrl = aaiPathToSearchNodeQuery + serviceInstanceId; + + // Test with No Partner Name + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + transactionId, testRestHeaders, httpBasicAuthorization); + + // 1. simulate the response to obtainResourceLink based on ServiceInstanceId + addResponse(queryNodeUrl, "junit/queryNodeData-1.json", aaiEnricherRule); + // 2. simulate the response of AAI (1 vnf) + // note: match serviceInstanceId in (1) + addResponse( "/aai/v13/business/customers/customer/DemoCust_651800ed-2a3c-45f5-b920-85c1ed155fc2/service-subscriptions/service-subscription/vFW/service-instances/service-instance/adc3cc2a-c73e-414f-8ddb-367de81300cb", + "junit/aai-service-instance_set2.json", aaiEnricherRule); + + // 3. simulate the rsp of VNF (with 1 vserver) + // note: match vnf_id in (2) + addResponse( "/aai/v13/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39" + DEPTH, + "junit/genericVnfInput_set2.json", aaiEnricherRule); + + // 4. simulate the rsp of vserer + // note: match to vserver-id to the path of "vserver" in (3) + addResponse( + "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant" + + "/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74a" + DEPTH, + "junit/aai-vserver.json", aaiEnricherRule); + + // 5. simulate the rsp of pserver with P-interface which also contains L-interface. + // note: match pserver hostname to the path of "pserver" in (4) + addResponse( + "/aai/v13/cloud-infrastructure/pservers/pserver/mtn96compute.cci.att.com" + DEPTH, + "junit/pserverInput_with_pInterface_LInterface_set2.json", aaiEnricherRule); + + // 6. simulate the rsp of logical-link + // note: match to link-name to the path of "relationship-list" in (5: pserverInput_with_pInterface_LInterface_set2) + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-1", + "junit/logical-link-input1.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-2", + "junit/logical-link-input2.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-3", + "junit/logical-link-input3.json", aaiEnricherRule); + addResponse( + "/aai/v13/network/logical-links/logical-link/01e8d84a-logical-link-4", + "junit/logical-link-input4.json", aaiEnricherRule); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + Response response = this.dummyRestSvc.getContext(mockHttpHeaders, httpBasicAuthorization, testRestHeaders, transactionId, + serviceInstanceId); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + Gson gson = new Gson(); + ModelContext modelCtx = gson.fromJson((String) response.getEntity(), ModelContext.class); + + List<VNF> vnfList = modelCtx.getVnfs(); + assertEquals(vnfList.size(), 1); + List<VFModule> vfModuleList = vnfList.get(0).getVfModules(); + assertEquals(vfModuleList.size(), 1); + List<VM> vmList = vfModuleList.get(0).getVms(); + assertEquals(vmList.size(), 1); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().size(), 1); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getName(), "bdc3cc2a-c73e-414f-7ddb-367de92801cb"); //interface-name + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().size(), 2); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().get(0).getName(), "junit-l-interface-name7"); //Vserver-> Pserver-> P-interface -> l-interface + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().get(1).getName(), "junit-l-interface-name8"); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().get(0).getLogicalLinkList().size(), 1); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().get(0).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-3"); //Vserver-> Pserver-> P-interface -> l-interface -> logical-link + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().get(1).getLogicalLinkList().size(), 1); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLInterfaceList().get(1).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-4"); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLogicalLinkList().size(), 2); + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLogicalLinkList().get(0).getName(), "01e8d84a-logical-link-1"); //Vserver-> Pserver-> P-interface -> Logical-link + assertEquals(vmList.get(0).getPServer().getPInterfaceList().get(0).getLogicalLinkList().get(1).getName(), "01e8d84a-logical-link-2"); + } } |