Class AbstractCompletableFutureAssert<SELF extends AbstractCompletableFutureAssert<SELF,RESULT>,RESULT>
- java.lang.Object
-
- org.assertj.core.api.AbstractAssert<SELF,CompletableFuture<RESULT>>
-
- org.assertj.core.api.AbstractCompletableFutureAssert<SELF,RESULT>
-
- Type Parameters:
RESULT- type of the value contained in theCompletableFuture.
- All Implemented Interfaces:
Assert<SELF,CompletableFuture<RESULT>>,Descriptable<SELF>,ExtensionPoints<SELF,CompletableFuture<RESULT>>
- Direct Known Subclasses:
CompletableFutureAssert
public abstract class AbstractCompletableFutureAssert<SELF extends AbstractCompletableFutureAssert<SELF,RESULT>,RESULT> extends AbstractAssert<SELF,CompletableFuture<RESULT>>
Assertions forCompletableFuture.
-
-
Field Summary
-
Fields inherited from class org.assertj.core.api.AbstractAssert
actual, assertionErrorCreator, conditions, info, myself, objects, throwUnsupportedExceptionOnEquals
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractCompletableFutureAssert(CompletableFuture<RESULT> actual, Class<?> selfType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SELFhasFailed()Verifies that theCompletableFuturehas completed exceptionally but has not been cancelled, this assertion is equivalent to:AbstractThrowableAssert<?,? extends Throwable>hasFailedWithThrowableThat()Verifies that theCompletableFuturehas completed exceptionally and returns a Throwable assertion object allowing to check the Throwable that has caused the future to fail.SELFhasNotFailed()Verifies that theCompletableFuturehas not failed i.e: incomplete, completed or cancelled.
This is different fromisNotCompletedExceptionally()as a cancelled future has not failed but is completed exceptionally.SELFisCancelled()Verifies that theCompletableFutureis cancelled.SELFisCompleted()Verifies that theCompletableFutureis completed normally (i.e.donebut notcompleted exceptionally) orcancelled).SELFisCompletedExceptionally()Verifies that theCompletableFutureis completed exceptionally.SELFisCompletedWithValue(RESULT expected)Verifies that theCompletableFutureis completed normally with theexpectedresult.SELFisCompletedWithValueMatching(Predicate<? super RESULT> predicate)Verifies that theCompletableFutureis completed normally with a result matching thepredicate.SELFisCompletedWithValueMatching(Predicate<? super RESULT> predicate, String description)Verifies that theCompletableFutureis completed normally with a result matching thepredicate, the String parameter is used in the error message.private SELFisCompletedWithValueMatching(Predicate<? super RESULT> predicate, PredicateDescription description)SELFisDone()Verifies that theCompletableFutureis done i.e.SELFisNotCancelled()Verifies that theCompletableFutureis not cancelled.SELFisNotCompleted()Verifies that theCompletableFutureis not completed normally (i.e.SELFisNotCompletedExceptionally()Verifies that theCompletableFutureis not completed exceptionally.SELFisNotDone()Verifies that theCompletableFutureis 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 futher 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, theInstanceOfAssertFactoryparameter 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 futher 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, theInstanceOfAssertFactoryparameter 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, 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, satisfies, satisfies, satisfiesAnyOf, satisfiesAnyOf, setCustomRepresentation, throwAssertionError, usingComparator, usingComparator, usingDefaultComparator, usingRecursiveComparison, usingRecursiveComparison, withAssertionState, 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
-
-
-
-
Constructor Detail
-
AbstractCompletableFutureAssert
protected AbstractCompletableFutureAssert(CompletableFuture<RESULT> actual, Class<?> selfType)
-
-
Method Detail
-
isDone
public SELF isDone()
Verifies that theCompletableFutureis done i.e. completed normally, exceptionally, or via cancellation.Assertion will pass :
Assertion will fail :assertThat(CompletableFuture.completedFuture("something")).isDone();assertThat(new CompletableFuture()).isDone();- Returns:
- this assertion object.
- See Also:
CompletableFuture.isDone()
-
isNotDone
public SELF isNotDone()
Verifies that theCompletableFutureis not done.Assertion will pass :
Assertion will fail :assertThat(new CompletableFuture()).isNotDone();assertThat(CompletableFuture.completedFuture("something")).isNotDone();- Returns:
- this assertion object.
- See Also:
CompletableFuture.isDone()
-
isCompletedExceptionally
public SELF isCompletedExceptionally()
Verifies that theCompletableFutureis completed exceptionally. Possible causes include cancellation, explicit invocation of completeExceptionally, and abrupt termination of a CompletionStage action.If you only want to check that actual future is completed exceptionally but not cancelled, use
hasFailed()orhasFailedWithThrowableThat().Assertion will pass :
Assertion will fail :CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException()); assertThat(future).isCompletedExceptionally();assertThat(CompletableFuture.completedFuture("something")).isCompletedExceptionally();- Returns:
- this assertion object.
- See Also:
CompletableFuture.isCompletedExceptionally()
-
isNotCompletedExceptionally
public SELF isNotCompletedExceptionally()
Verifies that theCompletableFutureis not completed exceptionally.Assertion will pass :
Assertion will fail :assertThat(CompletableFuture.completedFuture("something")).isNotCompletedExceptionally();CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException()); assertThat(future).isNotCompletedExceptionally();- Returns:
- this assertion object.
- See Also:
CompletableFuture.isCompletedExceptionally()
-
isCancelled
public SELF isCancelled()
Verifies that theCompletableFutureis cancelled.Assertion will pass :
Assertion will fail :CompletableFuture future = new CompletableFuture(); future.cancel(true); assertThat(future).isCancelled();assertThat(new CompletableFuture()).isCancelled();- Returns:
- this assertion object.
- See Also:
CompletableFuture.isCancelled()
-
isNotCancelled
public SELF isNotCancelled()
Verifies that theCompletableFutureis not cancelled.Assertion will pass :
Assertion will fail :assertThat(new CompletableFuture()).isNotCancelled();CompletableFuture future = new CompletableFuture(); future.cancel(true); assertThat(future).isNotCancelled();- Returns:
- this assertion object.
- See Also:
CompletableFuture.isCancelled()
-
isCompleted
public SELF isCompleted()
Verifies that theCompletableFutureis completed normally (i.e.donebut notcompleted exceptionally) orcancelled).Assertion will pass :
Assertion will fail :assertThat(CompletableFuture.completedFuture("something")).isCompleted();assertThat(new CompletableFuture()).isCompleted();- Returns:
- this assertion object.
-
isNotCompleted
public SELF isNotCompleted()
Verifies that theCompletableFutureis not completed normally (i.e. incomplete, failed or cancelled).Assertion will pass :
Assertion will fail :assertThat(new CompletableFuture()).isNotCompleted();assertThat(CompletableFuture.completedFuture("something")).isNotCompleted();- Returns:
- this assertion object.
-
isCompletedWithValue
public SELF isCompletedWithValue(RESULT expected)
Verifies that theCompletableFutureis completed normally with theexpectedresult.Assertion will pass :
Assertion will fail :assertThat(CompletableFuture.completedFuture("something")) .isCompletedWithValue("something");assertThat(CompletableFuture.completedFuture("something")) .isCompletedWithValue("something else");- Parameters:
expected- the expected result value of theCompletableFuture.- Returns:
- this assertion object.
-
isCompletedWithValueMatching
public SELF isCompletedWithValueMatching(Predicate<? super RESULT> predicate)
Verifies that theCompletableFutureis completed normally with a result matching thepredicate.Assertion will pass :
Assertion will fail :assertThat(CompletableFuture.completedFuture("something")) .isCompletedWithValueMatching(result -> result.equals("something"));assertThat(CompletableFuture.completedFuture("something")) .isCompletedWithValueMatching(result -> result.equals("something else"));- Parameters:
predicate- thePredicateto apply.- Returns:
- this assertion object.
-
isCompletedWithValueMatching
public SELF isCompletedWithValueMatching(Predicate<? super RESULT> predicate, String description)
Verifies that theCompletableFutureis completed normally with a result matching thepredicate, the String parameter is used in the error message.Assertion will pass :
Assertion will fail :assertThat(CompletableFuture.completedFuture("something")) .isCompletedWithValueMatching(result -> result != null, "expected not null");
Error message is:assertThat(CompletableFuture.completedFuture("something")) .isCompletedWithValueMatching(result -> result == null, "expected null");Expecting: <"something"> to match 'expected null' predicate.
-
isCompletedWithValueMatching
private SELF isCompletedWithValueMatching(Predicate<? super RESULT> predicate, PredicateDescription description)
-
hasFailed
public SELF hasFailed()
Verifies that theCompletableFuturehas completed exceptionally but has not been cancelled, this assertion is equivalent to:assertThat(future).isCompletedExceptionally() .isNotCancelled();Assertion will pass :
Assertion will fail :CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException()); assertThat(future).hasFailed();CompletableFuture future = new CompletableFuture(); future.cancel(true); assertThat(future).hasFailed();- Returns:
- this assertion object.
-
hasNotFailed
public SELF hasNotFailed()
Verifies that theCompletableFuturehas not failed i.e: incomplete, completed or cancelled.
This is different fromisNotCompletedExceptionally()as a cancelled future has not failed but is completed exceptionally.Assertion will pass :
Assertion will fail :CompletableFuture future = new CompletableFuture(); future.cancel(true); assertThat(future).hasNotFailed();CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException()); assertThat(future).hasNotFailed();- Returns:
- this assertion object.
-
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 futher 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:
CompletableFuture<String> future = CompletableFuture.completedFuture("ook!"); Duration timeout = Duration.ofMillis(100); // assertion succeeds assertThat(future).succeedsWithin(timeout) .isEqualTo("ook!"); // fails assuming the future is not done after the given timeout CompletableFuture<String> future = ... ; // future too long to complete assertThat(future).succeedsWithin(timeout); // fails as the future is cancelled CompletableFuture future = new CompletableFuture(); 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 actualCompletableFutureisnull.AssertionError- if the actualCompletableFuturedoes not succeed within the given timeout.
-
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 futher 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:
CompletableFuture<String> future = CompletableFuture.completedFuture("ook!"); // assertion succeeds assertThat(future).succeedsWithin(100, TimeUnit.MILLISECONDS) .isEqualTo("ook!"); // fails assuming the future is not done after the given timeout CompletableFuture<String> future = ... ; // future too long to complete assertThat(future).succeedsWithin(100, TimeUnit.MILLISECONDS); // fails as the future is cancelled CompletableFuture future = new CompletableFuture(); future.cancel(false); assertThat(future).succeedsWithin(100, 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 actualCompletableFutureisnull.AssertionError- if the actualCompletableFuturedoes not succeed within the given timeout.
-
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, theInstanceOfAssertFactoryparameter 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:
CompletableFuture<String> future = CompletableFuture.completedFuture("ook!"); Duration timeout = Duration.ofMillis(100); // assertion succeeds // using asInstanceOf is recommanded to get assertions for the future result's type assertThat(future).succeedsWithin(timeout, InstanceOfAssertFactories.STRING) .contains("ok"); // 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
Assertinstance for assertions chaining on the value of theCompletableFuture - Throws:
AssertionError- if the actualCompletableFutureisnull.IllegalStateException- if the actualCompletableFuturedoes not succeed within the given timeout.
-
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, theInstanceOfAssertFactoryparameter 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:
CompletableFuture<String> future = CompletableFuture.completedFuture("ook!"); // assertion succeeds // using asInstanceOf is recommanded to get assertions for the future result's type assertThat(future).succeedsWithin(100, TimeUnit.MILLISECONDS, InstanceOfAssertFactories.STRING) .contains("ok"); // assertion fails if the narrowed type for assertions is incompatible with the future's result type. assertThat(future).succeedsWithin(100, 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
Assertinstance for assertions chaining on the value of theCompletableFuture - Throws:
AssertionError- if the actualCompletableFutureisnull.AssertionError- if the actualCompletableFuturedoes not succeed within the given timeout.
-
hasFailedWithThrowableThat
public AbstractThrowableAssert<?,? extends Throwable> hasFailedWithThrowableThat()
Verifies that theCompletableFuturehas completed exceptionally and returns a Throwable assertion object allowing to check the Throwable that has caused the future to fail.Assertion will pass :
Assertion will fail :CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException("boom!")); assertThat(future).hasFailedWithThrowableThat().isInstanceOf(RuntimeException.class); .hasMessage("boom!");CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException()); assertThat(future).hasFailedWithThrowableThat().isInstanceOf(IllegalArgumentException.class);- Returns:
- an exception assertion object.
-
-