a0955ff800301fd33c499a522064eb8e1116f23a
[sdc.git] / integration-tests / src / test / java / org / onap / sdc / frontend / ci / tests / flow / InterfaceDefinitionFlow.java
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2022 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.flow;
21
22 import com.aventstack.extentreports.Status;
23 import java.util.Optional;
24 import org.onap.sdc.frontend.ci.tests.execute.setup.ExtentTestActions;
25 import org.onap.sdc.frontend.ci.tests.pages.ComponentPage;
26 import org.onap.sdc.frontend.ci.tests.pages.PageObject;
27 import org.onap.sdc.frontend.ci.tests.pages.component.workspace.InterfaceDefinitionPage;
28 import org.openqa.selenium.WebDriver;
29
30 /**
31  * UI Flow for managing an Interface Definition from a component
32  */
33 public class InterfaceDefinitionFlow extends AbstractUiTestFlow {
34
35     private InterfaceDefinitionPage interfaceDefinitionPage;
36
37     public InterfaceDefinitionFlow(final WebDriver webDriver) {
38         super(webDriver);
39     }
40
41     @Override
42     public Optional<PageObject> run(final PageObject... pageObjects) {
43         extendTest.log(Status.INFO, "Downloading Tosca CSAR generated");
44         final ComponentPage componentPage = findParameter(pageObjects, ComponentPage.class);
45         componentPage.isLoaded();
46         interfaceDefinitionPage = componentPage.goToInterfaceDefinition();
47         interfaceDefinitionPage.isLoaded();
48         ExtentTestActions.takeScreenshot(Status.INFO, "interface-definition-page", "Interface Definition page loaded");
49         return Optional.of(interfaceDefinitionPage);
50     }
51
52     @Override
53     public Optional<InterfaceDefinitionPage> getLandedPage() {
54         return Optional.ofNullable(interfaceDefinitionPage);
55     }
56 }