aboutsummaryrefslogtreecommitdiffstats
path: root/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java')
-rw-r--r--vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java370
1 files changed, 370 insertions, 0 deletions
diff --git a/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java b/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java
new file mode 100644
index 000000000..52aa2e388
--- /dev/null
+++ b/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java
@@ -0,0 +1,370 @@
+package org.onap.vid.api;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMultimap;
+import com.google.common.collect.Multimap;
+import org.onap.simulator.presetGenerator.presets.aai.*;
+import org.onap.simulator.presetGenerator.presets.ecompportal_att.PresetGetSessionSlotCheckIntervalGet;
+import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceMetadataGet;
+import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceToscaModelGet;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import vid.automation.test.services.SimulatorApi;
+
+import java.util.UUID;
+
+import static org.apache.commons.text.StringEscapeUtils.escapeJson;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.*;
+import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.CLEAR_THEN_SET;
+
+public class ServiceTreeApiTest extends BaseApiTest {
+
+ private static final String API_URL = "/aai_get_service_instance_topology/{subscriberId}/{serviceType}/{serviceInstanceId}";
+
+ @BeforeClass
+ public void login() {
+ super.login();
+ }
+
+ @Test
+ public void serviceWithNoChildren_requestDoesSomething() {
+ final PresetAAIStandardQueryGet serviceInstance =
+ PresetAAIStandardQueryGet.ofServiceInstance("service-instance-id", "7a6ee536-f052-46fa-aa7e-2fca9d674c44", "service-instance-model-invariant-id", "global-customer-id", "service-instance-type", ImmutableMultimap.of());
+
+ SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
+ serviceInstance,
+ new PresetAAIModelsByInvariantIdGet(ImmutableList.of("service-instance-model-invariant-id")),
+ new PresetSDCGetServiceMetadataGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "service-instance-model-invariant-id", "csar15782222_instantiationTypeMacroWithNetwork.zip"),
+ new PresetSDCGetServiceToscaModelGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "csar15782222_instantiationTypeMacroWithNetwork.zip")
+ ), CLEAR_THEN_SET);
+ final String response = restTemplate.getForObject(buildUri(API_URL), String.class, "global-customer-id", "service-instance-type", "service-instance-id");
+
+ assertJsonEquals(response, "" +
+ "{" +
+ " \"instanceName\": \"" + escapeJson(serviceInstance.getInstanceName()) + "\"," +
+ " \"action\": \"None\"," +
+ " \"instanceId\": \"service-instance-id\"," +
+ " \"orchStatus\": \"GARBAGE DATA\"," +
+ " \"globalSubscriberId\": \"global-customer-id\"," +
+ " \"subscriptionServiceType\": \"service-instance-type\"," +
+ " \"owningEntityId\": null," +
+ " \"owningEntityName\": null," +
+ " \"productFamilyId\": null," +
+ " \"lcpCloudRegionId\": null," +
+ " \"tenantId\": null," +
+ " \"tenantName\": null," +
+ " \"aicZoneId\": null," +
+ " \"aicZoneName\": null," +
+ " \"projectName\": null," +
+ " \"rollbackOnFailure\": null," +
+ " \"modelInfo\": {" +
+ " \"modelInvariantId\": \"service-instance-model-invariant-id\"," +
+ " \"modelVersionId\": \"7a6ee536-f052-46fa-aa7e-2fca9d674c44\"," +
+ " \"modelName\": \"vf_vEPDG\"," +
+ " \"modelType\": \"service\"," +
+ " \"modelVersion\": \"2.0\"" +
+ " }," +
+ " \"vnfs\": {}," +
+ " \"networks\": {}," +
+ " \"vnfGroups\": {}," +
+ " \"validationCounter\": 0," +
+ " \"existingVNFCounterMap\": {}," +
+ " \"existingNetworksCounterMap\": {}," +
+ " \"existingVnfGroupCounterMap\": {}," +
+ " \"isALaCarte\": false" +
+ "}");
+ }
+
+ @Test
+ public void searchGroupMembers_expected4vnfs() {
+ PresetAAIStandardQueryGet instanceGroup1 = PresetAAIStandardQueryGet.ofInstanceGroup("L3-NETWORK", "SUB_INTERFACE", ImmutableMultimap.of());
+ PresetAAIStandardQueryGet instanceGroup2 = PresetAAIStandardQueryGet.ofInstanceGroup("LOAD-GROUP", "SERVICE-ACCESS", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet vnfPreset1 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "7a6ee536-f052-46fa-aa7e-2fca9d674c44", "",
+ ImmutableMultimap.of("instance-group", instanceGroup1.getReqPath()));
+
+ PresetAAIStandardQueryGet vnfPreset2 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "eb5f56bf-5855-4e61-bd00-3e19a953bf02",
+ "\"in-maint\": true,", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet vnfPreset3 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc", "",
+ ImmutableMultimap.of("instance-group", instanceGroup1.getReqPath()));
+
+ PresetAAIStandardQueryGet vnfPreset4 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "b7f2e8fb-ac71-4ea0-a801-06ef1479ea84",
+ "\"in-maint\": true,", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet vnfPreset5 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "b7f2e8fb-ac71-4ea0-a801-06ef1479ea84",
+ "\"in-maint\": true,", ImmutableMultimap.of("instance-group", instanceGroup2.getReqPath()));
+
+ Multimap<String, String> serviceInstance1 = ImmutableMultimap.<String, String>builder()
+ .putAll("generic-vnf", vnfPreset1.getReqPath())
+ .putAll("generic-vnf", vnfPreset3.getReqPath())
+ .build();
+
+ Multimap<String, String> serviceInstance2 = ImmutableMultimap.<String, String>builder()
+ .putAll("generic-vnf", vnfPreset2.getReqPath())
+ .putAll("generic-vnf", vnfPreset4.getReqPath())
+ .putAll("generic-vnf", vnfPreset5.getReqPath())
+ .build();
+
+ PresetAAIGetServiceInstancesByInvariantId serviceInstancesList = new PresetAAIGetServiceInstancesByInvariantId(
+ "global-customer-id", "service-instance-type", "24632e6b-584b-4f45-80d4-fefd75fd9f14",
+ ImmutableMap.of("service-instance-id1", serviceInstance1,
+ "service-instance-id2", serviceInstance2));
+
+
+ SimulatorApi.registerExpectationFromPresets(
+ ImmutableList.of(serviceInstancesList,
+ vnfPreset1, instanceGroup1,
+ vnfPreset2,
+ vnfPreset3,
+ vnfPreset4,
+ vnfPreset5, instanceGroup2, //this vnf should be filtered out
+ new PresetAAIModelsByInvariantIdGet(ImmutableList.of("vnf-instance-model-invariant-id")),
+ new PresetAAIGetCloudRegionFromVnf(vnfPreset1.getInstanceId()),
+ new PresetAAIGetCloudRegionFromVnf(vnfPreset2.getInstanceId()),
+ new PresetAAIGetCloudRegionFromVnf(vnfPreset3.getInstanceId()),
+ new PresetAAIGetCloudRegionFromVnf(vnfPreset4.getInstanceId())
+ ), CLEAR_THEN_SET);
+
+ String api_url = "aai_search_group_members?subscriberId={subscriberId}&serviceType={serviceType}&serviceInvariantId={serviceInvariantId}" +
+ "&groupType={groupType}&groupRole={groupRole}";
+
+ final String response = restTemplate.getForObject(buildUri(api_url), String.class, "global-customer-id", "service-instance-type", "24632e6b-584b-4f45-80d4-fefd75fd9f14", "LOAD-GROUP", "SERVICE-ACCESS");
+
+ LOGGER.info(response);
+
+ String expected = TestUtils.convertRequest(objectMapper, "VnfGroup/searchMembersResponse.json");
+ expected = expected
+ .replace("VNF1_INSTANCE_NAME", vnfPreset1.getInstanceName())
+ .replace("VNF1_INSTANCE_ID", vnfPreset1.getInstanceId())
+ .replace("VNF1_INSTANCE_TYPE", vnfPreset1.getInstanceType())
+ .replace("VNF2_INSTANCE_NAME", vnfPreset2.getInstanceName())
+ .replace("VNF2_INSTANCE_ID", vnfPreset2.getInstanceId())
+ .replace("VNF2_INSTANCE_TYPE", vnfPreset2.getInstanceType())
+ .replace("VNF3_INSTANCE_NAME", vnfPreset3.getInstanceName())
+ .replace("VNF3_INSTANCE_ID", vnfPreset3.getInstanceId())
+ .replace("VNF3_INSTANCE_TYPE", vnfPreset3.getInstanceType())
+ .replace("VNF4_INSTANCE_NAME", vnfPreset4.getInstanceName())
+ .replace("VNF4_INSTANCE_ID", vnfPreset4.getInstanceId())
+ .replace("VNF4_INSTANCE_TYPE", vnfPreset4.getInstanceType());
+
+ assertJsonEquals(response, expected);
+ }
+
+ @Test
+ public void searchGroupMembers_expectedNoResult() {
+ PresetAAIGetServiceInstancesByInvariantId serviceInstancesList = new PresetAAIGetServiceInstancesByInvariantId(
+ "global-customer-id", "service-instance-type", "24632e6b-584b-4f45-80d4-fefd75fd9f14",
+ ImmutableMap.of("service-instance-id1", ImmutableMultimap.of(),
+ "service-instance-id2", ImmutableMultimap.of()));
+
+
+ SimulatorApi.registerExpectationFromPreset(serviceInstancesList, CLEAR_THEN_SET);
+
+ String api_url = "aai_search_group_members?subscriberId={subscriberId}&serviceType={serviceType}&serviceInvariantId={serviceInvariantId}" +
+ "&groupType={groupType}&groupRole={groupRole}";
+
+ final String response = restTemplate.getForObject(buildUri(api_url), String.class, "global-customer-id", "service-instance-type", "24632e6b-584b-4f45-80d4-fefd75fd9f14", "LOAD-GROUP", "SERVICE-ACCESS");
+
+ assertJsonEquals(response, "[]");
+ }
+
+ @Test
+ public void serviceWithMultiplePlys_responseIsReasonable() {
+
+ PresetAAIStandardQueryGet l3NetworkPreset1 =
+ PresetAAIStandardQueryGet.ofL3Network("CONTRAIL30_BASIC", "Assigned",
+ ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet vlanTag1 = PresetAAIStandardQueryGet.ofVlanTag(44);
+
+ PresetAAIStandardQueryGet l3NetworkPreset2 =
+
+ PresetAAIStandardQueryGet.ofL3Network("CONTRAIL30_BASIC", "Created",
+ ImmutableMultimap.of("vlan-tag", vlanTag1.getReqPath()));
+
+ PresetAAIStandardQueryGet l3NetworkPreset3 =
+ PresetAAIStandardQueryGet.ofL3Network("CONTRAIL30_BASIC", "Assigned", "nvtprov", "ddc3f20c-08b5-40fd-af72-c6d14636b986","94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet l3NetworkPreset4 =
+ PresetAAIStandardQueryGet.ofL3Network("CONTRAIL30_HIMELGUARD", "Created", "preprov", "ddc3f20c-08b5-40fd-af72-c6d14636b986","94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet volumeGroup1 =
+ PresetAAIStandardQueryGet.ofVolumeGroup("vSON_test", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet instanceGroup1 = PresetAAIStandardQueryGet.ofInstanceGroup("L3-NETWORK", "Ruby Figueroa", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet collection1 =
+ PresetAAIStandardQueryGet.ofCollectionResource("Assigned",
+ ImmutableMultimap.of("instance-group", instanceGroup1.getReqPath()));
+
+ PresetAAIStandardQueryGet vnfPreset1 =
+ PresetAAIStandardQueryGet.ofVnf(randUuid(),
+ ImmutableMultimap.of("l3-network", l3NetworkPreset1.getReqPath(), "l3-network", l3NetworkPreset2.getReqPath()));
+
+ PresetAAIStandardQueryGet vnfPreset2 =
+ PresetAAIStandardQueryGet.ofVnf(randUuid(), "d6557200-ecf2-4641-8094-5393ae3aae60","91415b44-753d-494c-926a-456a9172bbb9",
+ "\"in-maint\": true,", ImmutableMultimap.of("volume-group", volumeGroup1.getReqPath()));
+
+ PresetAAIGetVfModulesByVnf vfModules2 = new PresetAAIGetVfModulesByVnf(vnfPreset2.getInstanceId());
+
+ final PresetAAIStandardQueryGet serviceInstance =
+ PresetAAIStandardQueryGet.ofServiceInstance("service-instance-id", "6e59c5de-f052-46fa-aa7e-2fca9d674c44", "d27e42cf-087e-4d31-88ac-6c4b7585f800", "global-customer-id", "service-instance-type",
+ ImmutableMultimap.<String, String>builder()
+ .putAll("l3-network", l3NetworkPreset3.getReqPath(), l3NetworkPreset4.getReqPath())
+ .putAll("collection", collection1.getReqPath())
+ .putAll("generic-vnf", vnfPreset1.getReqPath(), vnfPreset2.getReqPath())
+ .build()
+ );
+
+ SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
+ serviceInstance,
+ l3NetworkPreset3, l3NetworkPreset4, vnfPreset1, vnfPreset2, collection1,
+ volumeGroup1, l3NetworkPreset1, l3NetworkPreset2, instanceGroup1,
+ vlanTag1, vfModules2,
+ new PresetAAIModelsByInvariantIdGet(ImmutableList.of("d27e42cf-087e-4d31-88ac-6c4b7585f800")),
+ new PresetGetSessionSlotCheckIntervalGet(),
+ new PresetAAIGetSubscribersGet(),
+ new PresetSDCGetServiceMetadataGet("6e59c5de-f052-46fa-aa7e-2fca9d674c44", "d27e42cf-087e-4d31-88ac-6c4b7585f800", "csar15782222_instantiationTypeMacroWithNetwork.zip"),
+ new PresetSDCGetServiceToscaModelGet("6e59c5de-f052-46fa-aa7e-2fca9d674c44", "csar15782222_instantiationTypeMacroWithNetwork.zip")
+ ), CLEAR_THEN_SET);
+
+ String expected = TestUtils.convertRequest(objectMapper, "aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json");
+ expected = expected
+ .replace("SERVICE_INSTANCE_NAME", serviceInstance.getInstanceName())
+ .replace("VNF1_INSTANCE_NAME", vnfPreset1.getInstanceName())
+ .replace("VNF1_INSTANCE_ID", vnfPreset1.getInstanceId())
+ .replace("VNF1_INSTANCE_TYPE", vnfPreset1.getInstanceType())
+ .replace("VNF2_INSTANCE_NAME", vnfPreset2.getInstanceName())
+ .replace("VNF2_INSTANCE_ID", vnfPreset2.getInstanceId())
+ .replace("VNF2_INSTANCE_TYPE", vnfPreset2.getInstanceType())
+ .replace("NETWORK1_INSTANCE_NAME", l3NetworkPreset1.getInstanceName())
+ .replace("NETWORK1_INSTANCE_ID", l3NetworkPreset1.getInstanceId())
+ .replace("NETWORK2_INSTANCE_NAME", l3NetworkPreset2.getInstanceName())
+ .replace("NETWORK2_INSTANCE_ID", l3NetworkPreset2.getInstanceId())
+ .replace("NETWORK3_INSTANCE_NAME", l3NetworkPreset3.getInstanceName())
+ .replace("NETWORK3_INSTANCE_ID", l3NetworkPreset3.getInstanceId())
+ .replace("NETWORK4_INSTANCE_NAME", l3NetworkPreset4.getInstanceName())
+ .replace("NETWORK4_INSTANCE_ID", l3NetworkPreset4.getInstanceId());
+
+ String response = restTemplate.getForObject(buildUri(API_URL), String.class, "global-customer-id", "service-instance-type", "service-instance-id");
+
+ assertJsonEquals(response, expected);
+ }
+
+ @Test
+ public void serviceWithVnfGotError_exceptionIsThrown() {
+
+ PresetAAIStandardQueryGet vnfPreset =
+ PresetAAIStandardQueryGet.ofVnf(randUuid(),
+ ImmutableMultimap.of("l3-network", "/aai/v../I'm a wrong path"));
+
+ final PresetAAIStandardQueryGet serviceInstance =
+ PresetAAIStandardQueryGet.ofServiceInstance("service-instance-id", "7a6ee536-f052-46fa-aa7e-2fca9d674c44", "service-instance-model-invariant-id", "global-customer-id", "service-instance-type",
+ ImmutableMultimap.<String, String>builder()
+ .putAll("generic-vnf", vnfPreset.getReqPath())
+ .build()
+ );
+
+ SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
+ serviceInstance,
+ vnfPreset,
+ new PresetAAIModelsByInvariantIdGet(ImmutableList.of("service-instance-model-invariant-id")),
+ new PresetSDCGetServiceMetadataGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "service-instance-model-invariant-id", "csar15782222_instantiationTypeMacroWithNetwork.zip"),
+ new PresetSDCGetServiceToscaModelGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "csar15782222_instantiationTypeMacroWithNetwork.zip"),
+ new PresetGetSessionSlotCheckIntervalGet(),
+ new PresetAAIGetSubscribersGet()
+ ), CLEAR_THEN_SET);
+
+ final ResponseEntity<String> response = restTemplateErrorAgnostic.getForEntity(buildUri(API_URL), String.class, "global-customer-id", "service-instance-type", "service-instance-id");
+ assertThat(response.getBody(),containsString("AAI node fetching failed"));
+ assertThat(response.getStatusCode(), is(HttpStatus.INTERNAL_SERVER_ERROR));
+ }
+
+ @Test
+ public void serviceWithTwoVnfGroupsAndRelatedVnfs() {
+ PresetAAIStandardQueryGet relatedVnf1 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet relatedVnf2 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "d6557200-ecf2-4641-8094-5393ae3aae60",
+ "", ImmutableMultimap.of());
+
+ PresetAAIStandardQueryGet relatedVnf3 =
+ PresetAAIStandardQueryGet.ofRelatedVnf(randUuid(), "d6557200-ecf2-4641-8094-5393ae3aae60",
+ "", ImmutableMultimap.of());
+
+ final PresetAAIStandardQueryGet vnfGroup1 =
+ PresetAAIStandardQueryGet.ofInstanceGroup("vnfGroup-type", "Teresa Bradley",
+ ImmutableMultimap.<String, String>builder()
+ .putAll("generic-vnf", relatedVnf1.getReqPath(), relatedVnf2.getReqPath(), relatedVnf3.getReqPath())
+ .build()
+ );
+
+ final PresetAAIStandardQueryGet vnfGroup2 =
+ PresetAAIStandardQueryGet.ofInstanceGroup("vnfGroup-type", "Stanley Mccarthy", ImmutableMultimap.of());
+
+ final PresetAAIStandardQueryGet serviceInstance =
+ PresetAAIStandardQueryGet.ofServiceInstance("service-instance-id", "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc", "7ee41ce4-4827-44b0-a48e-2707a59905d2", "global-customer-id", "service-instance-type",
+ ImmutableMultimap.<String, String>builder()
+ .putAll("instance-group", vnfGroup1.getReqPath(),vnfGroup2.getReqPath())
+ .build()
+ );
+
+ SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
+ serviceInstance,
+ vnfGroup1,vnfGroup2, relatedVnf1, relatedVnf2, relatedVnf3,
+ new PresetAAIModelsByInvariantIdGet(ImmutableList.of("7ee41ce4-4827-44b0-a48e-2707a59905d2", "vnf-instance-model-invariant-id")),
+ new PresetGetSessionSlotCheckIntervalGet(),
+ new PresetAAIGetSubscribersGet(),
+ new PresetSDCGetServiceMetadataGet("4117a0b6-e234-467d-b5b9-fe2f68c8b0fc", "7ee41ce4-4827-44b0-a48e-2707a59905d2", "service-vnf-grouping-csar.zip"),
+ new PresetSDCGetServiceToscaModelGet("4117a0b6-e234-467d-b5b9-fe2f68c8b0fc", "service-vnf-grouping-csar.zip")
+ ), CLEAR_THEN_SET);
+
+ String expected = TestUtils.convertRequest(objectMapper, "VnfGroup/serviceWithVnfGroupsChildren_serviceInstance.json");
+ expected = expected
+ .replace("SERVICE_INSTANCE_NAME", serviceInstance.getInstanceName())
+ .replace("VNF_GROUP1_INSTANCE_ID", vnfGroup1.getInstanceId())
+ .replace("VNF_GROUP1_INSTANCE_NAME", vnfGroup1.getInstanceName())
+ .replace("VNF_GROUP1_INSTANCE_TYPE", vnfGroup1.getInstanceType())
+ .replace("VNF_GROUP1_INSTANCE_ROLE", vnfGroup1.getInstanceRole())
+
+ .replace("RELATED_VNF1_INSTANCE_ID", relatedVnf1.getInstanceId())
+ .replace("RELATED_VNF1_INSTANCE_NAME", relatedVnf1.getInstanceName())
+ .replace("RELATED_VNF1_INSTANCE_TYPE", relatedVnf1.getInstanceType())
+
+ .replace("RELATED_VNF2_INSTANCE_ID", relatedVnf2.getInstanceId())
+ .replace("RELATED_VNF2_INSTANCE_NAME", relatedVnf2.getInstanceName())
+ .replace("RELATED_VNF2_INSTANCE_TYPE", relatedVnf2.getInstanceType())
+
+ .replace("RELATED_VNF3_INSTANCE_ID", relatedVnf3.getInstanceId())
+ .replace("RELATED_VNF3_INSTANCE_NAME", relatedVnf3.getInstanceName())
+ .replace("RELATED_VNF3_INSTANCE_TYPE", relatedVnf3.getInstanceType())
+
+ .replace("VNF_GROUP2_INSTANCE_ID", vnfGroup2.getInstanceId())
+ .replace("VNF_GROUP2_INSTANCE_NAME", vnfGroup2.getInstanceName())
+ .replace("VNF_GROUP2_INSTANCE_TYPE", vnfGroup2.getInstanceType())
+ .replace("VNF_GROUP2_INSTANCE_ROLE", vnfGroup2.getInstanceRole());
+
+ final String response = restTemplate.getForObject(buildUri(API_URL), String.class, "global-customer-id", "service-instance-type", "service-instance-id");
+
+ assertJsonEquals(response, expected);
+ }
+
+ private String randUuid() {
+ return UUID.randomUUID().toString();
+ }
+}