package net.thucydides.core.steps;
import net.thucydides.core.pages.SystemClock;
public class StepDelayer {
private final SystemClock clock;
public StepDelayer(SystemClock clock) {
this.clock = clock;
}
public WaitForBuilder waitFor(int duration) {
return new WaitForBuilder(duration);
}
public class WaitForBuilder {
private final int duration;
private static final int MILLISECONDS_IN_A_SECOND = 1000;
private static final int MILLISECONDS_IN_A_MINUTE = 1000 * 60;
private static final int MILLISECONDS_IN_AN_HOUR = 1000 * 60 * 60;
public WaitForBuilder(int duration) {
this.duration = duration;
}
public void millisecond() {
clock.pauseFor(duration);
}
public void milliseconds() {
clock.pauseFor(duration);
}
public void second() {
clock.pauseFor(duration * MILLISECONDS_IN_A_SECOND);
}
public void seconds() {
clock.pauseFor(duration * MILLISECONDS_IN_A_SECOND);
}
public void minute() {
clock.pauseFor(duration * MILLISECONDS_IN_A_MINUTE);
}
public void minutes() {
clock.pauseFor(duration * MILLISECONDS_IN_A_MINUTE);
}
public void hour() {
clock.pauseFor(duration * MILLISECONDS_IN_AN_HOUR);
}
public void hours() {
clock.pauseFor(duration * MILLISECONDS_IN_AN_HOUR);
}
}
}