Add Semicolon at the end
[vid.git] / vid-automation / src / main / java / vid / automation / test / test / ViewEditWithDrawingBoardTest.java
1 package vid.automation.test.test;
2
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;
11
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;
46
47 public class ViewEditWithDrawingBoardTest extends VidBaseTestCase {
48
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;
56
57     @FeatureTogglingTest(Features.FLAG_1902_VNF_GROUPING)
58     @Test
59     public void testDeleteVnfGroupWithMembers() {
60
61         String serviceInstanceId = "b9af7c1d-a2d7-4370-b747-1b266849ad32";
62         String serviceReqId = "3cf5ea96-6b34-4945-b5b1-4a7798b1caf2";
63
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,
70                 ImmutableList.of(
71                         new PresetAAIModelsByInvariantIdGet(ImmutableList.of(aLaCarteVnfGroupingService.modelInvariantId)),
72                         new PresetMSOCreateServiceInstanceGen2WithNamesAlacarteGroupingService(names, 0, serviceReqId)
73                 )
74                 ),
75                 CLEAR_THEN_SET);
76
77         registerMsoPresetForRemoveInstanceGroupMember();
78         searchEditAndWaitForCompletion(
79                 serviceInstanceId,
80                 serviceInstanceToDeleteName,
81                 () -> hoverAndClickMenuByName(vnf1Name, "daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0", Constants.InstantiationStatus.CONTEXT_MENU_DELETE)
82         );
83     }
84
85     protected void searchEditAndWaitForCompletion(String serviceInstanceId, String serviceInstanceName, Runnable action) {
86         GeneralUIUtils.ultimateWait();
87         goToExistingInstanceById(serviceInstanceId);
88         GeneralUIUtils.ultimateWait();
89
90         DrawingBoardPage drawingBoardPage = new DrawingBoardPage();
91         DrawingBoardPage.goToIframe();
92         GeneralUIUtils.ultimateWait();
93         action.run();
94         GeneralUIUtils.ultimateWait();
95         drawingBoardPage.screenshotDeployDialog(serviceInstanceId);
96         drawingBoardPage.deploy();
97         drawingBoardPage.verifyServiceCompletedOnTime(serviceInstanceName, "Service " + serviceInstanceName);
98     }
99
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();
105
106         List <PresetMSODeleteInstanceGroup> vnfGroupPreset = ImmutableList.of(
107         new PresetMSODeleteInstanceGroup(vnfGroupRequestId, vnfGroupInstanceId, getUserCredentials().getUserId()));
108
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)
113         );
114
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));
120
121         final ImmutableList.Builder<BasePreset> basePresetBuilder = new ImmutableList.Builder<>();
122         basePresetBuilder
123                 .addAll(instanceGroupMemberPreset)
124                 .addAll(inProgressPresets)
125                 .addAll(vnfGroupPreset);
126         List<BasePreset> presets = basePresetBuilder.build();
127         registerExpectationFromPresets(presets, SimulatorApi.RegistrationStrategy.APPEND);
128     }
129
130
131     public List<BasePreset> createPresetsForServiceInstanceTopologyExpectationOnAAIAndGetVnf1Name(String serviceInstanceId) {
132
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";
136
137         PresetAAIStandardQueryGet relatedVnf1 =
138                 PresetAAIStandardQueryGet.ofVnf(RELATED_VNF_UUID1, "7a6ee536-f052-46fa-aa7e-2fca9d674c44", "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
139                         "", ImmutableMultimap.of(), defaultPlacement());
140
141         PresetAAIStandardQueryGet relatedVnf2 =
142                 PresetAAIStandardQueryGet.ofVnf(RELATED_VNF_UUID2, "d6557200-ecf2-4641-8094-5393ae3aae60","d6557200-ecf2-4641-8094-5393ae3aae60",
143                         "", ImmutableMultimap.of(), defaultPlacement());
144
145         PresetAAIStandardQueryGet relatedVnf3 =
146                 PresetAAIStandardQueryGet.ofVnf(RELATED_VNF_UUID3, "d6557200-ecf2-4641-8094-5393ae3aae60","d6557200-ecf2-4641-8094-5393ae3aae60",
147                         "", ImmutableMultimap.of(), defaultPlacement());
148
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())
153                                 .build()
154                 );
155
156         final PresetAAIStandardQueryGet vnfGroup2 =
157                 PresetAAIStandardQueryGet.ofInstanceGroup("vnfGroup-type", "Stanley Mccarthy", ImmutableMultimap.of());
158
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())
163                                 .build()
164                 );
165
166         serviceInstanceToDeleteName = serviceInstance.getInstanceName();
167         vnfGroupInstanceId = vnfGroup1.getInstanceId();
168         vnf1Name = vnfGroup1.getInstanceName();
169         return ImmutableList.of(
170                 serviceInstance,
171                 vnfGroup1, vnfGroup2, relatedVnf1, relatedVnf2, relatedVnf3);
172     }
173
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)
184         );
185     }
186
187     @FeatureTogglingTest({Features.FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT, Features.FLAG_1908_RESUME_MACRO_SERVICE})
188     @Test
189     public void testResumeServiceInstanceWithCollectionResource() {
190
191         String serviceInstanceId = "0d7b5429-da18-475b-8b67-1b8c0a596f68";
192         String serviceReqId = "405652f4-ceb3-4a75-9474-8aea71480a77"; //from PresetMSOOrchestrationRequestsGetByServiceInstanceId
193
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)
200                 ),
201                 CLEAR_THEN_SET);
202
203         searchEditAndWaitForCompletion(
204                 serviceInstanceId,
205                 serviceInstanceToResumeName, //side effect of createPresetsForGetTopologyOfServiceInstanceWithCRandInstanceGroup
206                 () -> {
207                     Click.byTestId(CONTEXT_MENU_BUTTON_HEADER);
208                     Click.byTestId(CONTEXT_MENU_HEADER_RESUME_ITEM);
209                 });
210     }
211
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)
218         );
219     }
220
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");
225
226         PresetAAIStandardQueryGet cr = PresetAAIStandardQueryGet.ofCollectionResource(
227                 "Assigned",
228                 ImmutableMultimap.of("instance-group", instanceGroup.getReqPath()),
229                 "081ceb56-eb71-4566-a72d-3e7cbee5cdf1",
230                 "ce8c98bc-4691-44fb-8ff0-7a47487c11c4"
231         );
232
233         PresetAAIStandardQueryGet service = PresetAAIStandardQueryGet.ofServiceInstance(
234                 serviceInstanceId,
235                 "INFRASTRUCTURE", "", collectionResourceForResume.modelVersionId,
236                 collectionResourceForResume.modelInvariantId,
237                 subscriberId,
238                 serviceType,
239                 "Assigned",
240                 ImmutableMultimap.of("collection", cr.getReqPath())
241         );
242
243         PresetAAIModelsByInvariantIdGetForServiceWithCR aaiModelsPreset = new PresetAAIModelsByInvariantIdGetForServiceWithCR(
244                 ImmutableList.of(
245                         "868b109c-9481-4a18-891b-af974db7705a",
246                         "081ceb56-eb71-4566-a72d-3e7cbee5cdf1",
247                         collectionResourceForResume.modelInvariantId));
248
249         serviceInstanceToResumeName = service.getInstanceName();
250
251         return ImmutableList.of(service, cr, instanceGroup, aaiModelsPreset);
252     }
253
254 }