1 package vid.automation.test.test;
3 import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIStandardQueryGet.defaultPlacement;
4 import static org.onap.simulator.presetGenerator.presets.mso.PresetMSOServiceInstanceGen2WithNames.Keys.SERVICE_NAME;
5 import static vid.automation.test.Constants.DrawingBoard.CONTEXT_MENU_BUTTON_HEADER;
6 import static vid.automation.test.Constants.DrawingBoard.CONTEXT_MENU_HEADER_RESUME_ITEM;
7 import static vid.automation.test.infra.ModelInfo.aLaCarteVnfGroupingService;
8 import static vid.automation.test.infra.ModelInfo.collectionResourceForResume;
9 import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.CLEAR_THEN_SET;
10 import static vid.automation.test.services.SimulatorApi.registerExpectationFromPresets;
12 import com.google.common.collect.ImmutableList;
13 import com.google.common.collect.ImmutableMap;
14 import com.google.common.collect.ImmutableMultimap;
15 import java.util.ArrayList;
16 import java.util.List;
17 import java.util.UUID;
18 import org.onap.sdc.ci.tests.utilities.GeneralUIUtils;
19 import org.onap.simulator.presetGenerator.presets.BasePresets.BasePreset;
20 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIFilterServiceInstanceById;
21 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetServicesGet;
22 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubDetailsGetSpecificService;
23 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubDetailsWithoutInstancesGetSpecificService;
24 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubscribersGet;
25 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIModelsByInvariantIdGet;
26 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIModelsByInvariantIdGetForServiceWithCR;
27 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIStandardQueryGet;
28 import org.onap.simulator.presetGenerator.presets.ecompportal_att.PresetGetSessionSlotCheckIntervalGet;
29 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOAddOrRemoveOneInstanceGroupMember;
30 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateServiceInstanceGen2WithNamesAlacarteGroupingService;
31 import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteInstanceGroup;
32 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet;
33 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestsGetByServiceInstanceId;
34 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOResumeRequest;
35 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOServiceInstanceGen2WithNames;
36 import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceMetadataGet;
37 import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceToscaModelGet;
38 import org.testng.annotations.Test;
39 import vid.automation.test.Constants;
40 import vid.automation.test.infra.Click;
41 import vid.automation.test.infra.FeatureTogglingTest;
42 import vid.automation.test.infra.Features;
43 import vid.automation.test.infra.ModelInfo;
44 import vid.automation.test.sections.DrawingBoardPage;
45 import vid.automation.test.services.SimulatorApi;
47 public class ViewEditWithDrawingBoardTest extends VidBaseTestCase {
49 private static final String MSO_COMPLETE_STATUS = "COMPLETE";
50 private String vnfGroupInstanceId;
51 private String serviceInstanceToDeleteName;
52 private String vnf1Name;
53 private String subscriberId = "e433710f-9217-458d-a79d-1c7aff376d89";
54 private String serviceType = "TYLER SILVIA";
55 private String serviceInstanceToResumeName;
57 @FeatureTogglingTest(Features.FLAG_1902_VNF_GROUPING)
59 public void testDeleteVnfGroupWithMembers() {
61 String serviceInstanceId = "b9af7c1d-a2d7-4370-b747-1b266849ad32";
62 String serviceReqId = "3cf5ea96-6b34-4945-b5b1-4a7798b1caf2";
64 //createPresetsForServiceInstanceTopologyExpectationOnAAIAndGetVnf1Name init serviceInstanceToDeleteName
65 final List<BasePreset> presetsForGetTopology = createPresetsForServiceInstanceTopologyExpectationOnAAIAndGetVnf1Name(serviceInstanceId);
66 final ImmutableMap<PresetMSOServiceInstanceGen2WithNames.Keys, String> names = ImmutableMap.of(SERVICE_NAME, serviceInstanceToDeleteName);
67 SimulatorApi.registerExpectationFromPresetsCollections(ImmutableList.of(
68 presetsForSearchAndEdit(aLaCarteVnfGroupingService, subscriberId, serviceType, serviceInstanceId),
69 presetsForGetTopology,
71 new PresetAAIModelsByInvariantIdGet(ImmutableList.of(aLaCarteVnfGroupingService.modelInvariantId)),
72 new PresetMSOCreateServiceInstanceGen2WithNamesAlacarteGroupingService(names, 0, serviceReqId)
77 registerMsoPresetForRemoveInstanceGroupMember();
78 searchEditAndWaitForCompletion(
80 serviceInstanceToDeleteName,
81 () -> hoverAndClickMenuByName(vnf1Name, "daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0", Constants.InstantiationStatus.CONTEXT_MENU_DELETE)
85 protected void searchEditAndWaitForCompletion(String serviceInstanceId, String serviceInstanceName, Runnable action) {
86 GeneralUIUtils.ultimateWait();
87 goToExistingInstanceById(serviceInstanceId);
88 GeneralUIUtils.ultimateWait();
90 DrawingBoardPage drawingBoardPage = new DrawingBoardPage();
91 DrawingBoardPage.goToIframe();
92 GeneralUIUtils.ultimateWait();
94 GeneralUIUtils.ultimateWait();
95 drawingBoardPage.screenshotDeployDialog(serviceInstanceId);
96 drawingBoardPage.deploy();
97 drawingBoardPage.verifyServiceCompletedOnTime(serviceInstanceName, "Service " + serviceInstanceName);
100 public void registerMsoPresetForRemoveInstanceGroupMember() {
101 String vnfGroupRequestId = UUID.randomUUID().toString();
102 String firstMemberRequestId = UUID.randomUUID().toString();
103 String secondMemberRequestId = UUID.randomUUID().toString();
104 String thirdMemberRequestId = UUID.randomUUID().toString();
106 List <PresetMSODeleteInstanceGroup> vnfGroupPreset = ImmutableList.of(
107 new PresetMSODeleteInstanceGroup(vnfGroupRequestId, vnfGroupInstanceId, getUserCredentials().getUserId()));
109 List<PresetMSOAddOrRemoveOneInstanceGroupMember> instanceGroupMemberPreset = ImmutableList.of(
110 new PresetMSOAddOrRemoveOneInstanceGroupMember(vnfGroupInstanceId, "963b67e1-079a-404e-abef-b745d770bd85", getUserCredentials().getUserId(), firstMemberRequestId, PresetMSOAddOrRemoveOneInstanceGroupMember.InstanceGroupMemberAction.Remove),
111 new PresetMSOAddOrRemoveOneInstanceGroupMember(vnfGroupInstanceId, "a9f1b136-11ed-471f-8d77-f123c7501a01", getUserCredentials().getUserId(), secondMemberRequestId, PresetMSOAddOrRemoveOneInstanceGroupMember.InstanceGroupMemberAction.Remove),
112 new PresetMSOAddOrRemoveOneInstanceGroupMember(vnfGroupInstanceId, "5a34a4f4-81a4-4eed-871b-f0b1187160d4", getUserCredentials().getUserId(), thirdMemberRequestId, PresetMSOAddOrRemoveOneInstanceGroupMember.InstanceGroupMemberAction.Remove)
115 List<PresetMSOOrchestrationRequestGet> inProgressPresets = new ArrayList<>();
116 inProgressPresets.add(new PresetMSOOrchestrationRequestGet(MSO_COMPLETE_STATUS, vnfGroupRequestId));
117 inProgressPresets.add(new PresetMSOOrchestrationRequestGet(MSO_COMPLETE_STATUS, firstMemberRequestId));
118 inProgressPresets.add(new PresetMSOOrchestrationRequestGet(MSO_COMPLETE_STATUS, secondMemberRequestId));
119 inProgressPresets.add(new PresetMSOOrchestrationRequestGet(MSO_COMPLETE_STATUS, thirdMemberRequestId));
121 final ImmutableList.Builder<BasePreset> basePresetBuilder = new ImmutableList.Builder<>();
123 .addAll(instanceGroupMemberPreset)
124 .addAll(inProgressPresets)
125 .addAll(vnfGroupPreset);
126 List<BasePreset> presets = basePresetBuilder.build();
127 registerExpectationFromPresets(presets, SimulatorApi.RegistrationStrategy.APPEND);
131 public List<BasePreset> createPresetsForServiceInstanceTopologyExpectationOnAAIAndGetVnf1Name(String serviceInstanceId) {
133 final String RELATED_VNF_UUID1 = "a9f1b136-11ed-471f-8d77-f123c7501a01";
134 final String RELATED_VNF_UUID2 = "963b67e1-079a-404e-abef-b745d770bd85";
135 final String RELATED_VNF_UUID3 = "5a34a4f4-81a4-4eed-871b-f0b1187160d4";
137 PresetAAIStandardQueryGet relatedVnf1 =
138 PresetAAIStandardQueryGet.ofVnf(RELATED_VNF_UUID1, "7a6ee536-f052-46fa-aa7e-2fca9d674c44", "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
139 "", ImmutableMultimap.of(), defaultPlacement());
141 PresetAAIStandardQueryGet relatedVnf2 =
142 PresetAAIStandardQueryGet.ofVnf(RELATED_VNF_UUID2, "d6557200-ecf2-4641-8094-5393ae3aae60","d6557200-ecf2-4641-8094-5393ae3aae60",
143 "", ImmutableMultimap.of(), defaultPlacement());
145 PresetAAIStandardQueryGet relatedVnf3 =
146 PresetAAIStandardQueryGet.ofVnf(RELATED_VNF_UUID3, "d6557200-ecf2-4641-8094-5393ae3aae60","d6557200-ecf2-4641-8094-5393ae3aae60",
147 "", ImmutableMultimap.of(), defaultPlacement());
149 final PresetAAIStandardQueryGet vnfGroup1 =
150 PresetAAIStandardQueryGet.ofInstanceGroup("vnfGroup-type", "Teresa Bradley",
151 ImmutableMultimap.<String, String>builder()
152 .putAll("generic-vnf", relatedVnf1.getReqPath(), relatedVnf2.getReqPath(), relatedVnf3.getReqPath())
156 final PresetAAIStandardQueryGet vnfGroup2 =
157 PresetAAIStandardQueryGet.ofInstanceGroup("vnfGroup-type", "Stanley Mccarthy", ImmutableMultimap.of());
159 final PresetAAIStandardQueryGet serviceInstance =
160 PresetAAIStandardQueryGet.ofServiceInstance(serviceInstanceId, aLaCarteVnfGroupingService.modelVersionId, aLaCarteVnfGroupingService.modelInvariantId, "e433710f-9217-458d-a79d-1c7aff376d89", "TYLER SILVIA",
161 ImmutableMultimap.<String, String>builder()
162 .putAll("instance-group", vnfGroup1.getReqPath(), vnfGroup2.getReqPath())
166 serviceInstanceToDeleteName = serviceInstance.getInstanceName();
167 vnfGroupInstanceId = vnfGroup1.getInstanceId();
168 vnf1Name = vnfGroup1.getInstanceName();
169 return ImmutableList.of(
171 vnfGroup1, vnfGroup2, relatedVnf1, relatedVnf2, relatedVnf3);
174 private List<BasePreset> presetsForSearchAndEdit(ModelInfo modelInfo, String subscriberId, String serviceType, String serviceInstanceId) {
175 return ImmutableList.of(
176 new PresetGetSessionSlotCheckIntervalGet(),
177 new PresetAAIGetSubscribersGet(),
178 new PresetSDCGetServiceMetadataGet(modelInfo),
179 new PresetSDCGetServiceToscaModelGet(modelInfo),
180 new PresetAAIGetServicesGet(),
181 new PresetAAIFilterServiceInstanceById(subscriberId, serviceType, serviceInstanceId),
182 new PresetAAIGetSubDetailsGetSpecificService(subscriberId, serviceType, "Assigned", modelInfo, serviceInstanceId),
183 new PresetAAIGetSubDetailsWithoutInstancesGetSpecificService(subscriberId, serviceType)
187 @FeatureTogglingTest({Features.FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT, Features.FLAG_1908_RESUME_MACRO_SERVICE})
189 public void testResumeServiceInstanceWithCollectionResource() {
191 String serviceInstanceId = "0d7b5429-da18-475b-8b67-1b8c0a596f68";
192 String serviceReqId = "405652f4-ceb3-4a75-9474-8aea71480a77"; //from PresetMSOOrchestrationRequestsGetByServiceInstanceId
194 //createPresetsForServiceInstanceTopologyExpectationOnAAIAndGetVnf1Name init serviceInstanceToDeleteName
195 final List<BasePreset> presetsForGetTopology = createPresetsForGetTopologyOfServiceInstanceWithCRandInstanceGroup(serviceInstanceId);
196 SimulatorApi.registerExpectationFromPresetsCollections(ImmutableList.of(
197 presetsForSearchAndEdit(collectionResourceForResume, subscriberId, serviceType, serviceInstanceId),
198 presetsForGetTopology,
199 createPresetsForResume(serviceInstanceId, serviceReqId)
203 searchEditAndWaitForCompletion(
205 serviceInstanceToResumeName, //side effect of createPresetsForGetTopologyOfServiceInstanceWithCRandInstanceGroup
207 Click.byTestId(CONTEXT_MENU_BUTTON_HEADER);
208 Click.byTestId(CONTEXT_MENU_HEADER_RESUME_ITEM);
212 private List<BasePreset> createPresetsForResume(String serviceInstanceId, String serviceReqId) {
213 String resumeRequestId = UUID.randomUUID().toString();
214 return ImmutableList.of(
215 new PresetMSOOrchestrationRequestsGetByServiceInstanceId(serviceInstanceId),
216 new PresetMSOResumeRequest(serviceReqId, resumeRequestId, serviceInstanceId, "us16807000"),
217 new PresetMSOOrchestrationRequestGet(MSO_COMPLETE_STATUS, resumeRequestId)
221 private List<BasePreset> createPresetsForGetTopologyOfServiceInstanceWithCRandInstanceGroup(String serviceInstanceId) {
222 PresetAAIStandardQueryGet instanceGroup = PresetAAIStandardQueryGet.ofInstanceGroup(
223 "L3-NETWORK", "SUB_INTERFACE", ImmutableMultimap.of(),
224 "868b109c-9481-4a18-891b-af974db7705a", "dd182d7d-6949-4b90-b3cc-5befe400742e");
226 PresetAAIStandardQueryGet cr = PresetAAIStandardQueryGet.ofCollectionResource(
228 ImmutableMultimap.of("instance-group", instanceGroup.getReqPath()),
229 "081ceb56-eb71-4566-a72d-3e7cbee5cdf1",
230 "ce8c98bc-4691-44fb-8ff0-7a47487c11c4"
233 PresetAAIStandardQueryGet service = PresetAAIStandardQueryGet.ofServiceInstance(
235 "INFRASTRUCTURE", "", collectionResourceForResume.modelVersionId,
236 collectionResourceForResume.modelInvariantId,
240 ImmutableMultimap.of("collection", cr.getReqPath())
243 PresetAAIModelsByInvariantIdGetForServiceWithCR aaiModelsPreset = new PresetAAIModelsByInvariantIdGetForServiceWithCR(
245 "868b109c-9481-4a18-891b-af974db7705a",
246 "081ceb56-eb71-4566-a72d-3e7cbee5cdf1",
247 collectionResourceForResume.modelInvariantId));
249 serviceInstanceToResumeName = service.getInstanceName();
251 return ImmutableList.of(service, cr, instanceGroup, aaiModelsPreset);