public class ConditionFactory extends Object
Condition
objects. It's not recommended to
instantiate this class directly.Constructor and Description |
---|
ConditionFactory(Duration timeout,
Duration pollInterval,
Duration pollDelay,
boolean catchUncaughtExceptions)
Instantiates a new condition factory.
|
ConditionFactory(String alias,
Duration timeout,
Duration pollInterval,
Duration pollDelay,
boolean catchUncaughtExceptions)
Instantiates a new condition factory.
|
Modifier and Type | Method and Description |
---|---|
ConditionFactory |
and()
A method to increase the readability of the Awaitility DSL.
|
ConditionFactory |
atMost(Duration timeout)
Await at most
timeout before throwing a timeout exception. |
ConditionFactory |
atMost(long timeout,
TimeUnit unit)
Await at most
timeout before throwing a timeout exception. |
ConditionFactory |
await()
Await for an asynchronous operation.
|
ConditionFactory |
await(String alias)
Await for an asynchronous operation and give this await instance a
particular name.
|
ConditionFactory |
catchUncaughtExceptions()
Instruct Awaitility to catch uncaught exceptions from other threads.
|
ConditionFactory |
dontCatchUncaughtExceptions()
Don't catch uncaught exceptions in other threads.
|
ConditionFactory |
forever()
Await forever until the condition is satisfied.
|
ConditionFactory |
given()
A method to increase the readability of the Awaitility DSL.
|
ConditionFactory |
pollDelay(Duration pollDelay)
Specify the delay that will be used before Awaitility starts polling for
the result the first time.
|
ConditionFactory |
pollDelay(long delay,
TimeUnit unit)
Specify the delay that will be used before Awaitility starts polling for
the result the first time.
|
ConditionFactory |
pollInterval(Duration pollInterval)
Specify the polling interval Awaitility will use for this await
statement.
|
ConditionFactory |
pollInterval(long pollInterval,
TimeUnit unit)
Specify the polling interval Awaitility will use for this await
statement.
|
ConditionFactory |
then()
A method to increase the readability of the Awaitility DSL.
|
ConditionFactory |
timeout(Duration timeout)
Await at most
timeout before throwing a timeout exception. |
ConditionFactory |
timeout(long timeout,
TimeUnit unit)
Await at most
timeout before throwing a timeout exception. |
<T> void |
until(Callable<Boolean> conditionEvaluator)
Await until a
Callable returns true . |
<T> T |
until(Callable<T> supplier,
org.hamcrest.Matcher<? super T> matcher)
Await until a
Callable supplies a value matching the specified
Matcher . |
void |
until(Runnable supplier)
Await until a
Runnable supplier execution passes (ends without throwing an exception). |
void |
untilAtomic(AtomicBoolean atomic,
org.hamcrest.Matcher<? super Boolean> matcher)
Await until a Atomic variable has a value matching the specified
Matcher . |
Integer |
untilAtomic(AtomicInteger atomic,
org.hamcrest.Matcher<? super Integer> matcher)
Await until a Atomic variable has a value matching the specified
Matcher . |
Long |
untilAtomic(AtomicLong atomic,
org.hamcrest.Matcher<? super Long> matcher)
Await until a Atomic variable has a value matching the specified
Matcher . |
<V> V |
untilAtomic(AtomicReference<V> atomic,
org.hamcrest.Matcher<? super V> matcher)
Await until a Atomic variable has a value matching the specified
Matcher . |
<T> T |
untilCall(T ignore,
org.hamcrest.Matcher<? super T> matcher)
Specify the condition that must be met when waiting for a method call.
|
void |
untilFalse(AtomicBoolean atomic)
Await until a Atomic boolean becomes false.
|
void |
untilTrue(AtomicBoolean atomic)
Await until a Atomic boolean becomes true.
|
ConditionFactory |
with()
A method to increase the readability of the Awaitility DSL.
|
public ConditionFactory(String alias, Duration timeout, Duration pollInterval, Duration pollDelay, boolean catchUncaughtExceptions)
alias
- the aliastimeout
- the timeoutpollInterval
- the poll intervalpollDelay
- The poll delaycatchUncaughtExceptions
- the catch uncaught exceptionspublic ConditionFactory(Duration timeout, Duration pollInterval, Duration pollDelay, boolean catchUncaughtExceptions)
timeout
- the timeoutpollInterval
- the poll intervalpollDelay
- The delay before the polling startscatchUncaughtExceptions
- the catch uncaught exceptionspublic ConditionFactory timeout(Duration timeout)
timeout
before throwing a timeout exception.timeout
- the timeoutpublic ConditionFactory atMost(Duration timeout)
timeout
before throwing a timeout exception.timeout
- the timeoutpublic ConditionFactory forever()
public ConditionFactory pollInterval(Duration pollInterval)
Note that the poll delay will be automatically set as to the same value
as the interval unless it's specified explicitly using
pollDelay(Duration)
, pollDelay(long, TimeUnit)
or
pollDelay(com.jayway.awaitility.Duration)
, or
ConditionFactory#andWithPollDelay(long, TimeUnit)}.
pollInterval
- the poll intervalpublic ConditionFactory timeout(long timeout, TimeUnit unit)
timeout
before throwing a timeout exception.timeout
- the timeoutunit
- the unitpublic ConditionFactory pollDelay(long delay, TimeUnit unit)
delay
- the delayunit
- the unitpublic ConditionFactory pollDelay(Duration pollDelay)
pollDelay
- the poll delaypublic ConditionFactory atMost(long timeout, TimeUnit unit)
timeout
before throwing a timeout exception.timeout
- the timeoutunit
- the unitpublic ConditionFactory pollInterval(long pollInterval, TimeUnit unit)
Note that the poll delay will be automatically set as to the same value as the interval unless it's specified explicitly using
pollDelay(Duration)
, pollDelay(long, TimeUnit)
or
pollDelay(com.jayway.awaitility.Duration)
, or
ConditionFactory#andWithPollDelay(long, TimeUnit)}.pollInterval
- the poll intervalunit
- the unitpublic ConditionFactory catchUncaughtExceptions()
true
.public ConditionFactory await()
ConditionFactory
instance and is used only to get a more
fluent-like syntax.public ConditionFactory await(String alias)
alias
- the aliaspublic ConditionFactory and()
public ConditionFactory with()
public ConditionFactory then()
public ConditionFactory given()
public ConditionFactory dontCatchUncaughtExceptions()
public <T> T untilCall(T ignore, org.hamcrest.Matcher<? super T> matcher)
await().untilCall(to(orderService).size(), is(greaterThan(2)));
T
- the generic typeignore
- the return value of the method callmatcher
- The condition that must be met whenConditionTimeoutException
- If condition was not fulfilled within the given time period.public <T> T until(Callable<T> supplier, org.hamcrest.Matcher<? super T> matcher)
Callable
supplies a value matching the specified
Matcher
. E.g.
await().until(numberOfPersons(), is(greaterThan(2)));
where "numberOfPersons()" returns a standard
Callable
:
private Callable<Integer> numberOfPersons() { return new Callable<Integer>() { public Integer call() { return personRepository.size(); } }; }
Using a generic
Callable
as done by using this version of "until"
allows you to reuse the "numberOfPersons()" definition in multiple await
statements. I.e. you can easily create another await statement (perhaps
in a different test case) using e.g.
await().until(numberOfPersons(), is(equalTo(6)));
T
- the generic typesupplier
- the supplier that is responsible for getting the value that
should be matched.matcher
- the matcher The hamcrest matcher that checks whether the
condition is fulfilled.ConditionTimeoutException
- If condition was not fulfilled within the given time period.public void until(Runnable supplier)
Runnable
supplier execution passes (ends without throwing an exception). E.g. with Java 8:
await().until(() -> Assertions.assertThat(personRepository.size()).isEqualTo(6));or
await().until(() -> assertEquals(6, personRepository.size()));
This method is intended to benefit from lambda expressions introduced in Java 8. It allows to use standard AssertJ/FEST Assert assertions (by the way also standard JUnit/TestNG assertions) to test asynchronous calls and systems.
AssertionError
instances thrown by the supplier are treated as an assertion failure and proper error message is propagated on timeout.
Other exceptions are rethrown immediately as an execution errors.
Why technically it is completely valid to use plain Runnable class in Java 7 code, the resulting expression is very verbose and can decrease the readability of the test case, e.g.
await().untilPass(new Runnable() { public void run() { Assertions.assertThat(personRepository.size()).isEqualTo(6); } });
supplier
- the supplier that is responsible for executing the assertion and throwing AssertionError on failure.ConditionTimeoutException
- If condition was not fulfilled within the given time period.public Integer untilAtomic(AtomicInteger atomic, org.hamcrest.Matcher<? super Integer> matcher)
Matcher
. E.g.
await().untilAtomic(myAtomic, is(greaterThan(2)));
atomic
- the atomic variablematcher
- the matcher The hamcrest matcher that checks whether the
condition is fulfilled.Integer
object.ConditionTimeoutException
- If condition was not fulfilled within the given time period.public Long untilAtomic(AtomicLong atomic, org.hamcrest.Matcher<? super Long> matcher)
Matcher
. E.g.
await().untilAtomic(myAtomic, is(greaterThan(2)));
atomic
- the atomic variablematcher
- the matcher The hamcrest matcher that checks whether the
condition is fulfilled.Long
object.ConditionTimeoutException
- If condition was not fulfilled within the given time period.public void untilAtomic(AtomicBoolean atomic, org.hamcrest.Matcher<? super Boolean> matcher)
Matcher
. E.g.
await().untilAtomic(myAtomic, is(greaterThan(2)));
atomic
- the atomic variablematcher
- the matcher The hamcrest matcher that checks whether the
condition is fulfilled.ConditionTimeoutException
- If condition was not fulfilled within the given time period.public void untilTrue(AtomicBoolean atomic)
atomic
- the atomic variableConditionTimeoutException
- If condition was not fulfilled within the given time period.public void untilFalse(AtomicBoolean atomic)
atomic
- the atomic variableConditionTimeoutException
- If condition was not fulfilled within the given time period.public <V> V untilAtomic(AtomicReference<V> atomic, org.hamcrest.Matcher<? super V> matcher)
Matcher
. E.g.
await().untilAtomic(myAtomic, is(greaterThan(2)));
V
- a V object.atomic
- the atomic variablematcher
- the matcher The hamcrest matcher that checks whether the
condition is fulfilled.ConditionTimeoutException
- If condition was not fulfilled within the given time period.public <T> void until(Callable<Boolean> conditionEvaluator)
Callable
returns true
. This is method
is not as generic as the other variants of "until" but it allows for a
more precise and in some cases even more english-like syntax. E.g.
await().until(numberOfPersonsIsEqualToThree());
where "numberOfPersonsIsEqualToThree()" returns a standard
Callable
of type Boolean
:
private Callable<Boolean> numberOfPersons() { return new Callable<Boolean>() { public Boolean call() { return personRepository.size() == 3; } }; }
T
- the generic typeconditionEvaluator
- the condition evaluatorConditionTimeoutException
- If condition was not fulfilled within the given time period.Copyright © 2010–2014. All rights reserved.