Provide user to specify the ouput name while declaring the atrributes
[sdc.git] / integration-tests / src / test / java / org / onap / sdc / frontend / ci / tests / pages / VlmOverviewPage.java
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  *
16  *  SPDX-License-Identifier: Apache-2.0
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.onap.sdc.frontend.ci.tests.pages;
21
22 import static org.hamcrest.MatcherAssert.assertThat;
23 import lombok.AllArgsConstructor;
24 import lombok.Getter;
25 import org.hamcrest.core.Is;
26 import org.openqa.selenium.By;
27 import org.openqa.selenium.WebDriver;
28 import org.openqa.selenium.WebElement;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32 public class VlmOverviewPage extends AbstractPageObject {
33
34     private static final Logger LOGGER = LoggerFactory.getLogger(VlmOverviewPage.class);
35     private static final String DIV_CLASS_XPATH_FORMAT = "//div[@class='%s']";
36     private static final String DIV_DATA_TEST_ID_XPATH_FORMAT = "//div[@data-test-id='%s']";
37     private final VlmSubmitModal vlmSubmitModal;
38     private WebElement wrappingElement;
39
40     public VlmOverviewPage(final WebDriver webDriver,
41                            final VlmSubmitModal vlmSubmitModal) {
42         super(webDriver);
43         this.vlmSubmitModal = vlmSubmitModal;
44         timeoutInSeconds = 10;
45     }
46
47     @Override
48     public void isLoaded() {
49         wrappingElement = getWrappingElement();
50     }
51
52     public void overviewScreenIsLoaded() {
53         final String overviewPageXpath = String
54             .format("%s%s", VlmOverviewPage.XpathSelector.PAGE_MAIN_DIV.getXpath(), XpathSelector.OVERVIEW_PAGE.getXpath());
55         waitForElementVisibility(By.xpath(overviewPageXpath));
56         final WebElement selectedNavBarGroupItem =
57             findSubElement(wrappingElement, XpathSelector.SELECTED_NAV_BAR_GROUP_ITEM.getXpath());
58         final String selectedNavBarGroupItemTestId = selectedNavBarGroupItem.getAttribute("data-test-id");
59         assertThat("Overview page should be selected", selectedNavBarGroupItemTestId,
60             Is.is(XpathSelector.NAV_BAR_GROUP_ITEM_OVERVIEW.getId()));
61     }
62
63     public String getVendorName() {
64         return wrappingElement.findElement(By.xpath(XpathSelector.NAV_BAR_GROUP_NAME_XPATH.getXpath())).getText();
65     }
66
67     public void submit() {
68         findSubElement(wrappingElement, XpathSelector.BNT_SUBMIT.getXpath()).click();
69         vlmSubmitModal.isLoaded();
70         vlmSubmitModal.confirmSuccess();
71     }
72
73     public WebElement getWrappingElement() {
74         LOGGER.debug("Finding element with xpath '{}'", XpathSelector.PAGE_MAIN_DIV.getXpath());
75         return waitForElementVisibility(XpathSelector.PAGE_MAIN_DIV.getXpath());
76     }
77
78     /**
79      * Enum that contains identifiers and xpath expressions to elements related to the enclosing page object.
80      */
81     @AllArgsConstructor
82     private enum XpathSelector {
83         PAGE_MAIN_DIV("software-product-view", DIV_CLASS_XPATH_FORMAT),
84         NAV_BAR_GROUP_ITEM_OVERVIEW("navbar-group-item-LICENSE_MODEL_OVERVIEW", DIV_CLASS_XPATH_FORMAT),
85         BNT_SUBMIT("vc-submit-btn", DIV_DATA_TEST_ID_XPATH_FORMAT),
86         NAV_BAR_GROUP_NAME_XPATH("navbar-group-name", DIV_DATA_TEST_ID_XPATH_FORMAT),
87         SELECTED_NAV_BAR_GROUP_ITEM("navigation-group-item-name selected", DIV_CLASS_XPATH_FORMAT),
88         OVERVIEW_PAGE("license-model-overview", DIV_CLASS_XPATH_FORMAT);
89
90         @Getter
91         private final String id;
92         private final String xpathFormat;
93
94         public String getXpath() {
95             return String.format(xpathFormat, id);
96         }
97
98     }
99
100 }