Package org.assertj.core.api
Class AbstractFutureAssert<SELF extends AbstractFutureAssert<SELF,ACTUAL,RESULT>,ACTUAL extends Future<RESULT>,RESULT>
- java.lang.Object
-
- org.assertj.core.api.AbstractAssert<SELF,ACTUAL>
-
- org.assertj.core.api.AbstractFutureAssert<SELF,ACTUAL,RESULT>
-
- All Implemented Interfaces:
Assert<SELF,ACTUAL>
,Descriptable<SELF>
,ExtensionPoints<SELF,ACTUAL>
- Direct Known Subclasses:
FutureAssert
public abstract class AbstractFutureAssert<SELF extends AbstractFutureAssert<SELF,ACTUAL,RESULT>,ACTUAL extends Future<RESULT>,RESULT> extends AbstractAssert<SELF,ACTUAL>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Futures
futures
-
Fields inherited from class org.assertj.core.api.AbstractAssert
actual, assertionErrorCreator, conditions, info, myself, objects, throwUnsupportedExceptionOnEquals
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractFutureAssert(ACTUAL actual, Class<?> selfType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private ObjectAssert<RESULT>
internalSucceedsWithin(long timeout, TimeUnit unit)
private ObjectAssert<RESULT>
internalSucceedsWithin(Duration timeout)
SELF
isCancelled()
Verifies that theFuture
is cancelled.SELF
isDone()
Verifies that theFuture
is done.SELF
isNotCancelled()
Verifies that theFuture
is not cancelled.SELF
isNotDone()
Verifies that theFuture
is not done.ObjectAssert<RESULT>
succeedsWithin(long timeout, TimeUnit unit)
Waits if necessary for at most the given time for this future to complete and then returns its result for further assertions.<ASSERT extends AbstractAssert<?,?>>
ASSERTsucceedsWithin(long timeout, TimeUnit unit, InstanceOfAssertFactory<RESULT,ASSERT> assertFactory)
Waits if necessary for at most the given time for this future to complete, theInstanceOfAssertFactory
parameter is used to return assertions specific to the the future's result type.ObjectAssert<RESULT>
succeedsWithin(Duration timeout)
Waits if necessary for at most the given time for this future to complete and then returns its result for further assertions.<ASSERT extends AbstractAssert<?,?>>
ASSERTsucceedsWithin(Duration timeout, InstanceOfAssertFactory<RESULT,ASSERT> assertFactory)
Waits if necessary for at most the given time for this future to complete, theInstanceOfAssertFactory
parameter is used to return assertions specific to the the future's result type.-
Methods inherited from class org.assertj.core.api.AbstractAssert
asInstanceOf, asList, assertionError, asString, describedAs, descriptionText, doesNotHave, doesNotHaveSameClassAs, equals, extracting, extracting, failWithActualExpectedAndMessage, failWithMessage, getWritableAssertionInfo, has, hashCode, hasSameClassAs, hasSameHashCodeAs, hasToString, inBinary, inHexadecimal, is, isEqualTo, isExactlyInstanceOf, isIn, isIn, isInstanceOf, isInstanceOfAny, isInstanceOfSatisfying, isNot, isNotEqualTo, isNotExactlyInstanceOf, isNotIn, isNotIn, isNotInstanceOf, isNotInstanceOfAny, isNotNull, isNotOfAnyClassIn, isNotSameAs, isNull, isOfAnyClassIn, isSameAs, matches, matches, newListAssertInstance, overridingErrorMessage, overridingErrorMessage, satisfies, satisfies, satisfiesAnyOf, satisfiesAnyOf, satisfiesAnyOf, setCustomRepresentation, setDescriptionConsumer, setPrintAssertionsDescription, throwAssertionError, usingComparator, usingComparator, usingDefaultComparator, usingRecursiveComparison, usingRecursiveComparison, withAssertionState, withFailMessage, withFailMessage, withRepresentation, withThreadDumpOnError
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.assertj.core.api.Descriptable
as, as, describedAs
-
-
-
-
Field Detail
-
futures
Futures futures
-
-
Method Detail
-
isCancelled
public SELF isCancelled()
Verifies that theFuture
is cancelled.Example:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(new Callable<String>() { @Override public String call() throws Exception { return "done"; } }); // assertion will fail: assertThat(future).isCancelled(); // assertion will pass: future.cancel(true); assertThat(future).isCancelled();
- Returns:
- this assertion object.
- Since:
- 2.7.0 / 3.7.0
- See Also:
Future.isCancelled()
-
isNotCancelled
public SELF isNotCancelled()
Verifies that theFuture
is not cancelled.Example:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(new Callable<String>() { @Override public String call() throws Exception { return "done"; } }); // assertion will pass: assertThat(future).isNotCancelled(); // assertion will fail: future.cancel(true); assertThat(future).isNotCancelled();
- Returns:
- this assertion object.
- Since:
- 2.7.0 / 3.7.0
- See Also:
Future.isCancelled()
-
isDone
public SELF isDone()
Verifies that theFuture
is done.Example:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(new Callable<String>() { @Override public String call() throws Exception { return "done"; } }); // assertion will pass: assertThat(future).isDone(); future = executorService.submit(new Callable<String>() { @Override public String call() throws Exception { Thread.sleep(1000); return "done"; } }); // assertion will fail: assertThat(future).isDone();
- Returns:
- this assertion object.
- Since:
- 2.7.0 / 3.7.0
- See Also:
Future.isDone()
-
isNotDone
public SELF isNotDone()
Verifies that theFuture
is not done.Example:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(new Callable<String>() { @Override public String call() throws Exception { Thread.sleep(1000); return "done"; } }); // assertion will pass: assertThat(future).isNotDone(); future = executorService.submit(new Callable<String>() { @Override public String call() throws Exception { return "done"; } }); // assertion will fail: assertThat(future).isNotDone();
- Returns:
- this assertion object.
- Since:
- 2.7.0 / 3.7.0
- See Also:
Future.isDone()
-
succeedsWithin
public ObjectAssert<RESULT> succeedsWithin(Duration timeout)
Waits if necessary for at most the given time for this future to complete and then returns its result for further assertions.If the future's result is not available for any reason an assertion error is thrown.
To get assertions for the future result's type use
succeedsWithin(Duration, InstanceOfAssertFactory)
instead.Examples:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(() -> { Thread.sleep(100); return "ook!"; }); Duration timeout = Duration.ofMillis(200); // assertion succeeds assertThat(future).succeedsWithin(timeout) .isEqualTo("ook!"); // fails as the future is not done after the given timeout assertThat(future).succeedsWithin(Duration.ofMillis(50)); // fails as the future is cancelled Future<String> future = ... ; future.cancel(false); assertThat(future).succeedsWithin(timeout);
- Parameters:
timeout
- the maximum time to wait- Returns:
- a new assertion object on the the future's result.
- Throws:
AssertionError
- if the actualCompletableFuture
isnull
.AssertionError
- if the actualCompletableFuture
does not succeed within the given timeout.- Since:
- 3.17.0
-
succeedsWithin
public ObjectAssert<RESULT> succeedsWithin(long timeout, TimeUnit unit)
Waits if necessary for at most the given time for this future to complete and then returns its result for further assertions.If the future's result is not available for any reason an assertion error is thrown.
To get assertions for the future result's type use
succeedsWithin(long, TimeUnit, InstanceOfAssertFactory)
instead.Examples:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(() -> { Thread.sleep(100); return "ook!"; }); // assertion succeeds assertThat(future).succeedsWithin(200, TimeUnit.MILLISECONDS) .isEqualTo("ook!"); // fails as the future is not done after the given timeout assertThat(future).succeedsWithin(50, TimeUnit.MILLISECONDS); // fails as the future is cancelled Future<String> future = ... ; future.cancel(false); assertThat(future).succeedsWithin(200, TimeUnit.MILLISECONDS);
- Parameters:
timeout
- the maximum time to waitunit
- the time unit of the timeout argument- Returns:
- a new assertion object on the the future's result.
- Throws:
AssertionError
- if the actualFuture
isnull
.AssertionError
- if the actualFuture
does not succeed within the given timeout.- Since:
- 3.17.0
-
succeedsWithin
public <ASSERT extends AbstractAssert<?,?>> ASSERT succeedsWithin(Duration timeout, InstanceOfAssertFactory<RESULT,ASSERT> assertFactory)
Waits if necessary for at most the given time for this future to complete, theInstanceOfAssertFactory
parameter is used to return assertions specific to the the future's result type.If the future's result is not available for any reason an assertion error is thrown.
Examples:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(() -> { Thread.sleep(100); return "ook!"; }); Duration timeout = Duration.ofMillis(200); // assertion succeeds, contains(String...) assertion can be called because InstanceOfAssertFactories.STRING // indicates AssertJ to allow String assertions after succeedsWithin. assertThat(future).succeedsWithin(timeout, InstanceOfAssertFactories.STRING) .contains("ok"); // fails as the future is not done after the given timeout // as() is syntactic sugar for better readability. assertThat(future).succeedsWithin(Duration.ofMillis(50), as(STRING)); // assertion fails if the narrowed type for assertions is incompatible with the future's result type. assertThat(future).succeedsWithin(timeout, InstanceOfAssertFactories.DATE) .isToday();
- Type Parameters:
ASSERT
- the type of the resultingAssert
- Parameters:
timeout
- the maximum time to waitassertFactory
- the factory which verifies the type and creates the newAssert
- Returns:
- a new narrowed
Assert
instance for assertions chaining on the value of theFuture
- Throws:
AssertionError
- if the actualFuture
isnull
.IllegalStateException
- if the actualFuture
does not succeed within the given timeout.- Since:
- 3.17.0
-
succeedsWithin
public <ASSERT extends AbstractAssert<?,?>> ASSERT succeedsWithin(long timeout, TimeUnit unit, InstanceOfAssertFactory<RESULT,ASSERT> assertFactory)
Waits if necessary for at most the given time for this future to complete, theInstanceOfAssertFactory
parameter is used to return assertions specific to the the future's result type.If the future's result is not available for any reason an assertion error is thrown.
Examples:
ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(() -> { Thread.sleep(100); return "ook!"; }); // assertion succeeds, contains(String...) assertion can be called because InstanceOfAssertFactories.STRING // indicates AssertJ to allow String assertions after succeedsWithin. assertThat(future).succeedsWithin(200, TimeUnit.MILLISECONDS, InstanceOfAssertFactories.STRING) .contains("ok"); // fails as the future is not done after the given timeout // as() is syntactic sugar for better readability. assertThat(future).succeedsWithin(50, TimeUnit.MILLISECONDS, as(STRING)); // assertion fails if the narrowed type for assertions is incompatible with the future's result type. assertThat(future).succeedsWithin(200, TimeUnit.MILLISECONDS, InstanceOfAssertFactories.DATE) .isToday();
- Type Parameters:
ASSERT
- the type of the resultingAssert
- Parameters:
timeout
- the maximum time to waitunit
- the time unit of the timeout argumentassertFactory
- the factory which verifies the type and creates the newAssert
- Returns:
- a new narrowed
Assert
instance for assertions chaining on the value of theFuture
- Throws:
AssertionError
- if the actualFuture
isnull
.AssertionError
- if the actualFuture
does not succeed within the given timeout.- Since:
- 3.17.0
-
internalSucceedsWithin
private ObjectAssert<RESULT> internalSucceedsWithin(Duration timeout)
-
internalSucceedsWithin
private ObjectAssert<RESULT> internalSucceedsWithin(long timeout, TimeUnit unit)
-
-