From b214b134af3864af22c21df6c5bb9ba9b7c7784a Mon Sep 17 00:00:00 2001 From: David Grayson Date: Mon, 12 Mar 2018 10:04:47 -0400 Subject: [PATCH] Test passes and code is commented/documented --- .../AccountBurnDownDataReportForm.java | 57 ++++++++ .../java/com/orasi/bluesource/Accounts.java | 101 +++++++++++++ .../orasi/bluesource/EditRoleHoursForm.java | 79 +++++++++++ .../java/com/orasi/bluesource/Header.java | 10 ++ .../java/com/orasi/bluesource/Report.java | 55 +++++++ .../com/orasi/bluesource/ReportingNavBar.java | 63 ++++++++ ...gDecimalsOnBurnDownTableEditRoleHours.java | 134 ++++++++++++++++++ 7 files changed, 499 insertions(+) create mode 100644 src/main/java/com/orasi/bluesource/AccountBurnDownDataReportForm.java create mode 100644 src/main/java/com/orasi/bluesource/EditRoleHoursForm.java create mode 100644 src/main/java/com/orasi/bluesource/Report.java create mode 100644 src/main/java/com/orasi/bluesource/ReportingNavBar.java create mode 100644 src/test/java/com/bluesource/reports/LongDecimalsOnBurnDownTableEditRoleHours.java diff --git a/src/main/java/com/orasi/bluesource/AccountBurnDownDataReportForm.java b/src/main/java/com/orasi/bluesource/AccountBurnDownDataReportForm.java new file mode 100644 index 0000000..e088607 --- /dev/null +++ b/src/main/java/com/orasi/bluesource/AccountBurnDownDataReportForm.java @@ -0,0 +1,57 @@ +package com.orasi.bluesource; + +import com.orasi.web.OrasiDriver; +import com.orasi.web.PageLoaded; +import com.orasi.web.webelements.Element; +import com.orasi.web.webelements.Listbox; +import com.orasi.web.webelements.impl.internal.ElementFactory; +import org.openqa.selenium.support.FindBy; + +public class AccountBurnDownDataReportForm { + private OrasiDriver driver = null; + + /**Page Elements**/ + @FindBy(xpath = "//div[contains(text(),'Select All')]") private Element elmSelectAll; + @FindBy(xpath = "//input[@name='commit']") private Element elmGenerateReport; + @FindBy(xpath = "//select[@id='account_select']") private Listbox lstAccountSelect; + + /** + * Constructor + **/ + public AccountBurnDownDataReportForm(OrasiDriver driver) { + this.driver = driver; + ElementFactory.initElements(driver, this); + } + + /**Page Interactions**/ + + /** + * @author David Grayson + * @return {@link Boolean} Returns true if key elements of the form are loaded + */ + public boolean verifyFormLoaded(){ + return PageLoaded.isElementLoaded(this.getClass(),driver,elmGenerateReport,5) && + PageLoaded.isElementLoaded(this.getClass(),driver,lstAccountSelect,5) && + PageLoaded.isElementLoaded(this.getClass(),driver,elmSelectAll,5); + } + + public void selectAccount(String strAccount){ + if (canInteract(lstAccountSelect)){ + lstAccountSelect.select(strAccount); + } + } + + public void clickGenerateReport(){ + if (canInteract(elmGenerateReport)) + elmGenerateReport.click(); + } + + /** + * @author David Grayson + * @param elm {@link Element} The element to check + * @return {@link Boolean} Returns true if it can be interacted with, throws an error otherwise + */ + private boolean canInteract(Element elm){ + return elm.syncEnabled(5) && elm.syncVisible(5); + } +} \ No newline at end of file diff --git a/src/main/java/com/orasi/bluesource/Accounts.java b/src/main/java/com/orasi/bluesource/Accounts.java index e24471f..0c50998 100644 --- a/src/main/java/com/orasi/bluesource/Accounts.java +++ b/src/main/java/com/orasi/bluesource/Accounts.java @@ -46,6 +46,12 @@ public class Accounts { @FindBy(css = "div.btn.btn-secondary.btn-xs.quick-nav") private Button btnQuickNav; @FindBy(xpath = "//a[contains(@ng-bind, 'n + 1')]") private List