package com.bddinaction.flyinghigh.jbehave.pages;
import com.bddinaction.flyinghigh.jbehave.model.DestinationDeal;
import com.gargoylesoftware.htmlunit.ElementNotFoundException;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import net.thucydides.core.annotations.findby.By;
import net.thucydides.core.annotations.findby.FindBy;
import net.thucydides.core.pages.PageObject;
import net.thucydides.core.pages.WebElementFacade;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class HomePage extends PageObject {
@FindBy(id = "welcome-message")
private WebElementFacade welcomeMessage;
public String getWelcomeMessage() {
return welcomeMessage.getText();
}
public List<DestinationDeal> getFeaturedDestinations() {
List<DestinationDeal> deals = Lists.newArrayList();
List<WebElementFacade> featuredDestinations = findAll(".featured .featured-destination");
for (WebElement destinationEntry : featuredDestinations) {
deals.add(destinationDealFrom(destinationEntry));
}
return deals;
}
private DestinationDeal destinationDealFrom(WebElement destinationEntry) {
String destinationCity = $(destinationEntry).findBy(".destination-title").getText();
String priceValue = $(destinationEntry).findBy(".destination-price").getText();
int price = Integer.parseInt(priceValue.substring(1));
return new DestinationDeal(destinationCity, price);
}
}