easycare.cuke.steps.NavigationSteps.java Source code

Java tutorial

Introduction

Here is the source code for easycare.cuke.steps.NavigationSteps.java

Source

package easycare.cuke.steps;

import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import easycare.cuke.WebSite;
import easycare.cuke.pageObjects.AdminInsurersPage;
import easycare.cuke.pageObjects.AdminLocationCreatePage;
import easycare.cuke.pageObjects.AdminLocationListPage;
import easycare.cuke.pageObjects.BasePageObject;
import easycare.cuke.pageObjects.ChartsPage;
import easycare.cuke.pageObjects.HomePage;
import easycare.cuke.pageObjects.LicenseAgreementPage;
import easycare.cuke.pageObjects.LoginPage;
import easycare.cuke.pageObjects.PageBehavior;
import easycare.cuke.pageObjects.behaviors.physicianPartners.PhysicianPartnersPage;
import easycare.cuke.pageObjects.hme.HmeLocationsSearchPage;
import easycare.cuke.pageObjects.hme.HmePartnersPage;
import easycare.cuke.pageObjects.hme.HmeReferralInboxPage;
import easycare.cuke.pageObjects.module.ModuleManagementPage;
import easycare.cuke.pageObjects.organisation.MyOrganisationIntegrationPartnersPage;
import easycare.cuke.pageObjects.organisation.MyOrganisationSecurityPage;
import easycare.cuke.pageObjects.organisation.OrganisationListPage;
import easycare.cuke.pageObjects.organisation.OrganisationNewPage;
import easycare.cuke.pageObjects.patient.CreatePatientPage;
import easycare.cuke.pageObjects.patient.PatientIntegratorsPage;
import easycare.cuke.pageObjects.patient.PatientListPage;
import easycare.cuke.pageObjects.patient.PatientPhysiciansPage;
import easycare.cuke.pageObjects.patient.PatientViewBasicInfoPage;
import easycare.cuke.pageObjects.patient.PatientViewContactInfoPage;
import easycare.cuke.pageObjects.payor.GlobalPayorsListPage;
import easycare.cuke.pageObjects.payor.HMEPayorsListPage;
import easycare.cuke.pageObjects.report.ScheduledReportsPage;
import easycare.cuke.pageObjects.user.CreateUserPage;
import easycare.cuke.pageObjects.user.UserListPage;
import easycare.cuke.util.SeleniumUtils;
import org.openqa.selenium.WebDriver;
import org.springframework.stereotype.Component;

@Component
public class NavigationSteps extends AbstractSteps {

    @When("^I navigate to the patients list page$")
    public PatientListPage iNavigateToThePatientsListPage() {
        return navigationMenu().goToPatientsList();
    }

    @When("^I navigate to the patients list page with no search parameters applied$")
    public PatientListPage iNavigateToThePatientsListPageWithNoSearchParametersApplied() {
        return navigationMenu().goToPatientsListWithoutApplyFilter();
    }

    @When("^I navigate to the new referrals list page$")
    public HmeReferralInboxPage iNavigateToTheNewReferralsListPage() {
        return navigationMenu().goToNewReferralsPatientsList();
    }

    @When("^I navigate to the create patient page$")
    public CreatePatientPage iNavigateToTheCreatePatientPage() {
        return navigationMenu().goToCreatePatient();
    }

    @When("^I navigate to the login page$")
    public LoginPage navigateToLoginPage() {
        return goToLoginPage();
    }

    @When("^I navigate to the home page$")
    public HomePage navigateToHomePage() {
        return navigationMenu().goToHomePage();
    }

    @When("^I navigate to the organi(?:s|z)ation module management page$")
    public ModuleManagementPage iNavigateToTheOrganisationModuleManagementPage() {
        return navigationMenu().goToOrganisationModuleManagement();
    }

    @When("^I navigate to the organi(?:s|z)ation scheduled reports page$")
    public ScheduledReportsPage iNavigateToTheOrganisationScheduledReportsPage() {
        return navigationMenu().goToOrganisationScheduledReports();
    }

    @When("^I navigate to the users list page$")
    public UserListPage iNavigateToTheUsersListPage() {
        return navigationMenu().goToUserList();
    }

    @When("^I navigate to the create user page$")
    public CreateUserPage iNavigateToTheCreateUserPage() {
        return iNavigateToTheUsersListPage().goToCreateUser();
    }

    @When("^I navigate to the create location page$")
    public AdminLocationCreatePage iNavigateToTheCreateLocationPage() {
        return iNavigateToTheLocationsListPage().goToCreateNewLocation();
    }

    @When("^I navigate to the locations list page$")
    public AdminLocationListPage iNavigateToTheLocationsListPage() {
        return navigationMenu().goToLocationList();
    }

    @When("^I navigate to the create organi(?s:z)ation page$")
    public OrganisationNewPage iNavigateToTheCreateOrganisationPage() {
        return navigationMenu().goToOrganisationList().goToCreateOrganisation();
    }

    @When("^I navigate to the organisations list page$")
    public OrganisationListPage iNavigateToTheOrganisationsListPage() {
        return navigationMenu().goToOrganisationList();
    }

    @When("^I navigate to the global payors list page$")
    public GlobalPayorsListPage iNavigateToTheGlobalPayorsListPage() {
        return navigationMenu().goToGlobalPayorsListPage();
    }

    @When("^I navigate to the HME payors list page$")
    public HMEPayorsListPage iNavigateToTheHMEPayorsListPage() {
        return navigationMenu().goToHMEPayorsListPage();
    }

    @Then("^I navigate to the HME Partners page$")
    public HmePartnersPage iNavigateToTheHmesListPage() {
        return navigationMenu().goToHmePartnersList();
    }

    @When("^I navigate to the add hme page$")
    public HmeLocationsSearchPage iNavigateToTheAddHmePage() {
        return navigationMenu().goToAddHme();
    }

    @When("^I navigate to my organisation security page$")
    public MyOrganisationSecurityPage iNavigateToMyOrganisationSecurityPage() {
        return navigationMenu().goToOrganisationDetailsMenuItem().followSecurityLink();
    }

    @When("^I navigate to the organi(?:s|z)ation integration partners page$")
    public MyOrganisationIntegrationPartnersPage iNavigateToTheOrganizationIntegrationPartnersPage() {
        return navigationMenu().goToOrganisationDetailsMenuItem().followIntegrationPartnersLink();
    }

    @When("^I navigate to the insurers list page$")
    public AdminInsurersPage iNavigateToTheInsurersListPage() {
        return navigationMenu().goToInsurerList();
    }

    @When("^I navigate to the License Agreement page$")
    public void iNavigateToTheLicenseAgreementPage() {
        currentPage(LicenseAgreementPage.class).followLicenseAgreementLink();
    }

    @When("^I navigate to a nonexistent page$")
    public void iNavigateToANonexistentPage() {
        String url = "/error/http404";
        WebSite website = withBehavior(PageBehavior.class).getWebsite();
        withBehavior(PageBehavior.class).getDriver().navigate().to(website.getBaseUrl() + url);
    }

    @When("^I navigate to the billing plans list page$")
    public void iNavigateToTheBillingPlansListPage() throws Throwable {
        navigationMenu().goToBillingPlansList();
    }

    @Then("^I navigate to the Physician Partners list page$")
    public PhysicianPartnersPage iNavigateToThePhysicianPartnersViewPage() {
        return navigationMenu().goToPhysicianPartnersList();
    }

    public ChartsPage iNavigateDirectlyToPatientChartsPage(String easycareNumber) {
        return iNavigateDirectlyToPatientPage(ChartsPage.class, "/charts", easycareNumber);
    }

    public PatientViewBasicInfoPage iNavigateDirectlyToPatientDetailsPage(String easycareNumber) {
        return iNavigateDirectlyToPatientPage(PatientViewBasicInfoPage.class, "", easycareNumber);
    }

    public PatientViewContactInfoPage iNavigateDirectlyToPatientContactDetailsPage(String easycareNumber) {
        return iNavigateDirectlyToPatientPage(PatientViewContactInfoPage.class, "/contactInfo", easycareNumber);
    }

    public PatientPhysiciansPage iNavigateDirectlyToPatientPhysiciansPage(String easycareNumber) {
        return iNavigateDirectlyToPatientPage(PatientPhysiciansPage.class, "/physicians", easycareNumber);
    }

    public PatientIntegratorsPage iNavigateDirectlyToPatientIntegratorsPage(String easycareNumber) {
        return iNavigateDirectlyToPatientPage(PatientIntegratorsPage.class, "/integrators", easycareNumber);
    }

    private <T extends BasePageObject> T iNavigateDirectlyToPatientPage(Class<T> pageClass, String suffix,
            String easycareNumber) {
        final WebDriver driver = currentPage().getDriver();
        String url = currentPage().getBaseUrl() + "/patients/" + easycareNumber + suffix;
        driver.navigate().to(url);
        SeleniumUtils.pollForJqueryToComplete(driver);
        return currentPage(pageClass);
    }
}