vid-automation selenium tests
[vid.git] / vid-automation / src / main / java / vid / automation / test / test / CreateNewInstanceTest.java
1 package vid.automation.test.test;
2
3 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
4 import org.openqa.selenium.WebElement;
5 import org.testng.Assert;
6 import org.testng.annotations.Test;
7 import vid.automation.test.Constants;
8 import vid.automation.test.infra.Features;
9 import vid.automation.test.infra.Get;
10 import vid.automation.test.infra.SelectOption;
11 import vid.automation.test.model.Service;
12 import vid.automation.test.model.User;
13 import vid.automation.test.sections.CreateNewInstancePage;
14 import vid.automation.test.sections.SideMenu;
15 import vid.automation.test.services.BulkRegistration;
16 import vid.automation.test.services.ServicesService;
17 import vid.automation.test.services.SimulatorApi;
18
19 import java.io.IOException;
20 import java.time.LocalDate;
21 import java.time.format.DateTimeFormatter;
22 import java.util.List;
23
24 public class CreateNewInstanceTest extends CreateInstanceDialogBaseTest {
25     private ServicesService servicesService = new ServicesService();
26
27     public CreateNewInstanceTest() throws IOException {
28     }
29
30     @Test
31     private void testCreateNewServiceInstance() throws Exception {
32
33         if (!Features.CREATE_INSTANCE_TEST.isActive()) {
34
35             // time bomb, as it fails on pipeline and I don't know how to fix it
36             return;
37         }
38
39         SimulatorApi.clearAll();
40         BulkRegistration.createNewServiceInstance("USP VOICE");
41
42         User user = usersService.getUser(Constants.Users.USP_VOICE_VIRTUAL_USP);
43         relogin(user.credentials);
44
45         SideMenu.navigateToCreateNewServicePage();
46
47         CreateNewInstancePage createNewInstancePage = new CreateNewInstancePage();
48
49         String subscriberName = "USP VOICE";
50         assertDropdownPermittedItemsByLabel(user.subscriberNames, Constants.CreateNewInstance.SUBSCRIBER_NAME_OPTION_CLASS);
51         createNewInstancePage.selectSubscriberById("e433710f-9217-458d-a79d-1c7aff376d89");
52         createNewInstancePage.clickSubmitButton();
53         assertSuccessfulSelection(Constants.CreateNewInstance.SELECTED_SUBSCRIBER_NAME_TEST_ID,  subscriberName);
54
55         String serviceType = "VIRTUAL USP";
56         assertDropdownPermittedItemsByName(user.serviceTypes, Constants.CreateNewInstance.SERVICE_TYPE_OPTION_CLASS);
57         createNewInstancePage.selectServiceTypeByName(serviceType);
58         createNewInstancePage.clickSubmitButton();
59         assertSuccessfulSelection(Constants.CreateNewInstance.SELECTED_SERVICE_TYPE_NAME_TEST_ID, serviceType);
60
61         Service service = servicesService.getService( "c079d859-4d81-4add-a9c3-94551f96e2b0");
62
63         String instanceName = createNewInstancePage.generateInstanceName();
64         BulkRegistration.deployNewServiceInstance(instanceName);
65
66         createNewInstancePage.clickDeployServiceButtonByServiceUUID(service.uuid);
67
68         validateServiceCreationDialog(service, subscriberName, serviceType);
69
70         createNewInstancePage.setInstanceName(instanceName);
71         SelectOption.byTestIdAndVisibleText("MetroPacketCore", Constants.OwningEntity.OWNING_ENTITY_SELECT_TEST_ID);
72         SelectOption.byTestIdAndVisibleText("x1", Constants.OwningEntity.PROJECT_SELECT_TEST_ID);
73         createNewInstancePage.selectSuppressRollback("false");
74         createNewInstancePage.clickConfirmButton();
75
76         assertSuccessfulServiceInstanceCreation();
77
78         createNewInstancePage.clickCloseButton();
79     }
80
81     @Test
82     public void testSearchServicesWithSubscriberMSO_1610_ST() throws Exception {
83         SimulatorApi.clearAll();
84         BulkRegistration.createNewServiceInstance("MSO_1610_ST");
85
86         User user = usersService.getUser(Constants.Users.USP_VOICE_VIRTUAL_USP);
87         relogin(user.credentials);
88
89         SideMenu.navigateToCreateNewServicePage();
90
91         CreateNewInstancePage createNewInstancePage = new CreateNewInstancePage();
92
93         String subscriberName = "MSO_1610_ST";
94         assertDropdownPermittedItemsByLabel(user.subscriberNames, Constants.CreateNewInstance.SUBSCRIBER_NAME_OPTION_CLASS);
95         createNewInstancePage.selectSubscriberById("MSO_1610_ST");
96         createNewInstancePage.clickSubmitButton();
97         assertSuccessfulSelection(Constants.CreateNewInstance.SELECTED_SUBSCRIBER_NAME_TEST_ID,  subscriberName);
98
99         String serviceType = "MSO-dev-service-type";
100         assertDropdownPermittedItemsByName(user.serviceTypes, Constants.CreateNewInstance.SERVICE_TYPE_OPTION_CLASS);
101         createNewInstancePage.selectServiceTypeByName(serviceType);
102         createNewInstancePage.clickSubmitButton();
103         assertSuccessfulSelection(Constants.CreateNewInstance.SELECTED_SERVICE_TYPE_NAME_TEST_ID, serviceType);
104
105         assertSuccessfulGetServicesList();
106     }
107
108     private void assertSuccessfulSelection(String elementTestId, String expectedSelection) {
109         GeneralUIUtils.ultimateWait();
110         WebElement selectedElement = GeneralUIUtils.getWebElementByTestID(elementTestId, 30);
111         Assert.assertEquals(selectedElement.getText(), expectedSelection);
112     }
113
114     private void assertSuccessfulGetServicesList() {
115         GeneralUIUtils.ultimateWait();
116         List<List<String>> tableRows = Get.tableBodyValuesByTestId("services-list");
117         Assert.assertTrue(tableRows.size() > 0);
118     }
119
120     private void validateServiceCreationDialog(Service expectedService, String subscriberName, String serviceType) {
121         assertServiceMetadata(subscriberName, Constants.SUBSCRIBER_NAME);
122         assertServiceMetadata(serviceType, Constants.SERVICE_TYPE);
123         validateServiceCreationDialog(expectedService);
124
125     }
126 }