package cucumber.runtime.java.picocontainer;
import cucumber.api.Format;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import static org.junit.Assert.assertEquals;
public class DatesSteps {
private Date date;
@Given("^the ISO date is (.+)$")
public void the_iso_date_is(@Format("yyyy-MM-dd'T'HH:mm:ss") Date date) {
this.date = date;
}
@Given("^the simple date is (.+)$")
public void the_simple_date_is(@Format("yyyy/MM/dd") Date date) {
this.date = date;
}
@Given("^the ISO date with timezone is (.+$)")
public void the_ISO_date_with_timezone_is(@Format("yyyy-MM-dd'T'HH:mm:ss, z") Date date) {
this.date = date;
}
@Then("^the date should be viewed in (.+) as (\\d+), (\\d+), (\\d+), (\\d+), (\\d+), (\\d+)$")
public void the_date_should_be_decomposed_as(String timeZone, int year, int month, int day, int hours,
int minutes, int seconds) {
Calendar cal;
if (timeZone.equals("default")) {
cal = Calendar.getInstance(TimeZone.getDefault());
} else {
cal = Calendar.getInstance(TimeZone.getTimeZone(timeZone));
}
cal.setLenient(false);
cal.setTime(date);
assertEquals(year, cal.get(Calendar.YEAR));
assertEquals(month, cal.get(Calendar.MONTH) + 1); //calendar month are 0 based
assertEquals(day, cal.get(Calendar.DAY_OF_MONTH));
assertEquals(hours, cal.get(Calendar.HOUR_OF_DAY));
assertEquals(minutes, cal.get(Calendar.MINUTE));
assertEquals(seconds, cal.get(Calendar.SECOND));
}
}