/* * Copyright 2016-2017 Hewlett Packard Enterprise Development Company, L.P. * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. */ package com.autonomy.abc.selenium.find.numericWidgets; import com.autonomy.abc.selenium.find.IdolFindPage; import com.autonomy.abc.selenium.find.application.BIIdolFind; import com.autonomy.abc.selenium.find.application.BIIdolFindElementFactory; import com.autonomy.abc.selenium.find.filters.GraphFilterContainer; import com.autonomy.abc.selenium.find.filters.IdolFilterPanel; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; public class NumericWidgetService { private final BIIdolFindElementFactory elementFactory; private final BIIdolFind find; private final IdolFindPage findPage; public NumericWidgetService(final BIIdolFind find) { elementFactory = find.elementFactory(); this.find = find; findPage = elementFactory.getFindPage(); } public MainNumericWidget waitForReload() { elementFactory.getFilterPanel().waitForParametricFields(); final MainNumericWidget mainGraph = findPage.mainGraph(); mainGraph.waitUntilWidgetLoaded(); return mainGraph; } public String selectFilterGraph(final GraphFilterContainer container, final WebDriver driver) { container.expand(); final String graphTitle = container.filterCategoryName(); new WebDriverWait(driver, 5).until(new ExpectedCondition<Boolean>() { @Override public Boolean apply(final WebDriver driver) { return !container.isCollapsed(); } }); container.graph().click(); return graphTitle; } public MainNumericWidget searchAndSelectNthGraph(final int n, final String searchTerm, final WebDriver driver) { final IdolFilterPanel filterPanel = searchAndReturnFilterPanel(searchTerm); selectFilterGraph(filterPanel.getNthGraph(n), driver); return findPage.mainGraph(); } public MainNumericWidget searchAndSelectFirstNumericGraph(final String searchTerm, final WebDriver driver) { final IdolFilterPanel filterPanel = searchAndReturnFilterPanel(searchTerm); selectFilterGraph(filterPanel.getFirstNumericGraph(), driver); return findPage.mainGraph(); } public MainNumericWidget searchAndSelectFirstDateGraph(final String searchTerm, final WebDriver driver) { final IdolFilterPanel filterPanel = searchAndReturnFilterPanel(searchTerm); selectFilterGraph(filterPanel.getFirstDateGraph(), driver); return findPage.mainGraph(); } private IdolFilterPanel searchAndReturnFilterPanel(final String searchTerm) { find.findService().searchAnyView(searchTerm); final IdolFilterPanel filterPanel = elementFactory.getFilterPanel(); filterPanel.waitForParametricFields(); return filterPanel; } }