package net.rrm.ehour.it.driver; import net.rrm.ehour.it.WicketBy; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.Select; import static net.rrm.ehour.it.AbstractScenario.BASE_URL; import static net.rrm.ehour.it.AbstractScenario.Driver; import static net.rrm.ehour.it.driver.ItUtil.findElement; import static net.rrm.ehour.it.driver.ProjectDriver.ItProject; import static net.rrm.ehour.it.driver.UserManagementDriver.ItUser; public abstract class AssignmentAdminDriver { public static void assignToProjects(ItUser user, int... indices) { navigateToAssignmentAdmin(); filterAssignmentUsers(user.name); clickFirstUser(); WebElement element = findElement("assignmentPanel_assignmentTabs_panel_border_greySquaredFrame_border__body_assignmentForm_formComponents_projectSelection_projectAssignment.project"); Select select = new Select(element); for (int indice : indices) { select.selectByIndex(indice); } selectDateAndSetRate(); submit(); } public static boolean assignmentExists(int index) { WebElement element = findElement(String.format("assignmentPanel_assignmentList_border_border__body_assignments_%d_itemLink", index)); return element != null; } private static void clickFirstUser() { findElement("entrySelectorFrame_entrySelectorFrame__body_userSelector_entrySelectorFrame_blueBorder_blueBorder__body_listScroll_itemList_0").click(); } public static void assignToProject(ItUser user, ItProject project) { navigateToAssignmentAdmin(); filterAssignmentUsers(user.name); clickFirstUser(); WebElement projectElement = Driver.findElement(WicketBy.wicketPath("assignmentPanel_assignmentTabs_panel_border_greySquaredFrame_border__body_assignmentForm_formComponents_projectSelection_projectAssignment.project")); Select select = new Select(projectElement); select.selectByVisibleText(project.code + " - " + project.name); selectDateAndSetRate(); submit(); } private static void submit() { findElement("assignmentPanel_assignmentTabs_panel_border_greySquaredFrame_border__body_assignmentForm_submitButton").click(); } private static void selectDateAndSetRate() { new Select(findElement("assignmentPanel_assignmentTabs_panel_border_greySquaredFrame_border__body_assignmentForm_formComponents_assignmentType_projectAssignment.assignmentType")).selectByVisibleText("Date range"); findElement("assignmentPanel_assignmentTabs_panel_border_greySquaredFrame_border__body_assignmentForm_formComponents_rateRole_projectAssignment.hourlyRate").clear(); findElement("assignmentPanel_assignmentTabs_panel_border_greySquaredFrame_border__body_assignmentForm_formComponents_rateRole_projectAssignment.hourlyRate").sendKeys("120"); } public static void navigateToAssignmentAdmin() { Driver.get(BASE_URL + "/eh/admin/assignment"); } public static void filterAssignmentUsers(String filterFor) { WebElement listFilter = findElement(By.id("listFilter")); listFilter.clear(); listFilter.sendKeys(filterFor); } }