summaryrefslogtreecommitdiffstats
path: root/ui-ci-dev/src/main/java/org/openecomp/sdc/uici/tests/utilities/ServiceUIUtils.java
blob: abcc3b3ade62d56bc012de20e4e7d97191a74916 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package org.openecomp.sdc.uici.tests.utilities;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.function.Function;
import java.util.function.Supplier;

import org.openecomp.sdc.uici.tests.datatypes.DataTestIdEnum;
import org.openecomp.sdc.uici.tests.datatypes.DataTestIdEnum.GeneralSection;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;

import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
import org.openecomp.sdc.common.datastructure.FunctionalInterfaces;

public final class ServiceUIUtils {

	public static final String SERVICE_NAME_PREFIX = "ServiceCDTest-";
	public static final String INITIAL_VERSION = "0.1";
	public static final String ICON_SERVICE_NAME = "mobility";

	private ServiceUIUtils() {
		throw new UnsupportedOperationException();
	}

	public static String defineServiceName(String serviceName) {
		WebElement serviceNameElement = GeneralUIUtils.getWebElementWaitForVisible(GeneralSection.NAME.getValue());
		serviceNameElement.clear();
		serviceNameElement.sendKeys(serviceName);
		return serviceName;
	}

	public static void defineTagsList(ServiceReqDetails service, String[] serviceTags) {
		List<String> taglist = new ArrayList<String>();
		;
		WebElement serviceTagsTextbox = GeneralUIUtils.getWebElementWaitForVisible("i-sdc-tag-input");
		for (String tag : serviceTags) {
			serviceTagsTextbox.clear();
			serviceTagsTextbox.sendKeys(tag);
			serviceTagsTextbox.sendKeys(Keys.ENTER);
			taglist.add(tag);
		}
		taglist.add(0, service.getName());
		service.setTags(taglist);
	}

	public static Select defineServiceCategory(String category) {

		return GeneralUIUtils.getSelectList(category, "selectGeneralCategory");
	}

	private static void defineServiceProjectCode(String projectCode) {
		WebElement projectCodeTextbox = GeneralUIUtils.getWebElementWaitForVisible("projectCode");
		projectCodeTextbox.clear();
		projectCodeTextbox.sendKeys(projectCode);
	}

	private static void fillServiceGeneralPage(ServiceReqDetails service, User user) {
		service.setContactId(user.getUserId());
		service.setCreatorUserId(user.getUserId());
		service.setCreatorFullName(user.getFullName());
		defineServiceName(service.getName());
		defineServiceCategory(service.getCategories().get(0).getName());
		GeneralUIUtils.defineDescription(service.getDescription());
		defineTagsList(service,
				new String[] { service.getName(), "This-is-tag", "another-tag", "Test-automation-tag" });
		GeneralUIUtils.defineUserId(service.getCreatorUserId());
		defineServiceProjectCode(service.getProjectCode());

	}

	public static ServiceReqDetails createServiceInUI(User user) {

		ServiceReqDetails defineServiceetails = defineServiceDetails(user);
		GeneralUIUtils.clickAddComponent(DataTestIdEnum.Dashboard.BUTTON_ADD_SERVICE);

		GeneralUIUtils.waitForLoader();
		fillServiceGeneralPage(defineServiceetails, user);

		GeneralUIUtils.clickCreateButton();

		return defineServiceetails;

	}

	public static ServiceReqDetails defineServiceDetails(User user) {
		ServiceReqDetails service = new ServiceReqDetails();
		service = ElementFactory.getDefaultService(ServiceCategoriesEnum.MOBILITY, user);
		service.setVersion(INITIAL_VERSION);
		service.setIcon(ICON_SERVICE_NAME);
		service.setName(getRandomComponentName(SERVICE_NAME_PREFIX));

		return service;
	}

	protected static String getRandomComponentName(String prefix) {
		return prefix + new Random().nextInt(10000);
	}

	/**
	 * Waits Until service changed to requested lifeCycle State
	 * 
	 * @param createServiceInUI
	 * @param requestedLifeCycleState
	 * @param user
	 * @return
	 */
	public static Service waitForState(ServiceReqDetails createServiceInUI, LifecycleStateEnum requestedLifeCycleState,
			User user) {
		Supplier<Service> serviceGetter = () -> {
			String resourceString = RestCDUtils.getService(createServiceInUI, user).getResponse();
			return ResponseParser.convertServiceResponseToJavaObject(resourceString);
		};
		Function<Service, Boolean> verifier = res -> res.getLifecycleState() == requestedLifeCycleState;
		return FunctionalInterfaces.retryMethodOnResult(serviceGetter, verifier);

	}

	/**
	 * This Method Approves service for distribution<br>
	 * It assumes governor role is already logged in
	 * 
	 * @param createServiceInUI
	 */
	public static void approveServiceForDistribution(ServiceReqDetails createServiceInUI) {
		GeneralUIUtils.waitForLoader();
		GeneralUIUtils.getWebElementWaitForVisible(createServiceInUI.getName()).click();
		GeneralUIUtils.waitForLoader();
		GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.LifeCyleChangeButtons.APPROVE.getValue()).click();
		GeneralUIUtils.waitForLoader();
		GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.ModalItems.ACCEP_TESTING_MESSAGE.getValue())
				.sendKeys("Service " + createServiceInUI.getName() + " Approved For Distribution");
		GeneralUIUtils.waitForLoader();
		GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.ModalItems.OK.getValue()).click();
		GeneralUIUtils.waitForLoader();
		GeneralUIUtils.waitForElementToDisappear(DataTestIdEnum.ModalItems.OK.getValue());
	}

}