Add overloaded waitOn(..) method to supply Condition, duration and interval.

This commit is contained in:
John Blum
2018-08-14 18:24:07 -07:00
parent 7718b8d8b2
commit d65dd679c2

View File

@@ -128,15 +128,20 @@ public abstract class IntegrationTestsSupport {
return waitOn(condition, DEFAULT_WAIT_DURATION);
}
@SuppressWarnings("all")
protected static boolean waitOn(Condition condition, long duration) {
return waitOn(condition, duration, DEFAULT_WAIT_INTERVAL);
}
@SuppressWarnings("all")
protected static boolean waitOn(Condition condition, long duration, long interval) {
long resolvedInterval = Math.max(Math.min(interval, duration), 1);
long timeout = System.currentTimeMillis() + duration;
try {
while (!condition.evaluate() && System.currentTimeMillis() < timeout) {
synchronized (condition) {
TimeUnit.MILLISECONDS.timedWait(condition, DEFAULT_WAIT_INTERVAL);
TimeUnit.MILLISECONDS.timedWait(condition, resolvedInterval);
}
}
}