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