Class AsyncTaskManager.BarrierTask<T>

java.lang.Object
org.eclipse.microprofile.fault.tolerance.tck.util.AsyncTaskManager.BarrierTask<T>
Type Parameters:
T - the return type of the task
Enclosing class:
AsyncTaskManager

public static class AsyncTaskManager.BarrierTask<T> extends Object
A task which runs using a barrier

Use this interface to check that the task waits on the barrier and completes as expected

  • Constructor Summary

    Constructors
    Constructor
    Description
    BarrierTask(Future<? extends T> result, Barrier barrier)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Assert that the task waits on its barrier within WAIT_TIME_MS
    void
    Assert that the task completes within WAIT_TIME_MS
    void
    Assert that the task does not wait on its barrier
    void
    Assert that the task does not complete within EXPECTED_FAIL_TIME_MS
    void
    assertResult(org.hamcrest.Matcher<? super T> matcher)
    Assert that the task completes without exception within WAIT_TIME_MS and that the value returned is matched by the provided matcher
    void
    Assert that the task completes without exception within WAIT_TIME_MS
    void
    assertThrows(Class<? extends Throwable> exceptionClass)
    Assert that the task completes, throwing an exception of the specified class within WAIT_TIME_MS
    Get the result of the task
    getResult(long time, TimeUnit unit)
    Get the result of the task
    boolean
    Whether this task is awaiting its barrier right now
    void
    Open the barrier used by the task

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BarrierTask

      public BarrierTask(Future<? extends T> result, Barrier barrier)
  • Method Details

    • openBarrier

      public void openBarrier()
      Open the barrier used by the task
    • assertAwaits

      public void assertAwaits()
      Assert that the task waits on its barrier within WAIT_TIME_MS
    • assertNotAwaiting

      public void assertNotAwaiting()
      Assert that the task does not wait on its barrier

      This method always takes EXPECTED_FAIL_TIME_MS ms.

      If you need to check multiple tasks, use AsyncTaskManager.assertAllNotAwaiting(Collection) instead.

    • assertCompletes

      public void assertCompletes()
      Assert that the task completes within WAIT_TIME_MS
    • assertNotCompleting

      public void assertNotCompleting()
      Assert that the task does not complete within EXPECTED_FAIL_TIME_MS
    • assertSuccess

      public void assertSuccess()
      Assert that the task completes without exception within WAIT_TIME_MS
    • assertThrows

      public void assertThrows(Class<? extends Throwable> exceptionClass)
      Assert that the task completes, throwing an exception of the specified class within WAIT_TIME_MS
      Parameters:
      exceptionClass - the class of the expected exception
    • assertResult

      public void assertResult(org.hamcrest.Matcher<? super T> matcher)
      Assert that the task completes without exception within WAIT_TIME_MS and that the value returned is matched by the provided matcher
      Parameters:
      matcher - the Matcher used to assert the returned value
    • getResult

      public T getResult() throws ExecutionException
      Get the result of the task

      Asserts that the task completes within WAIT_TIME_MS.

      Returns:
      the task result
      Throws:
      ExecutionException - if the task threw an exception instead of returning
    • getResult

      public T getResult(long time, TimeUnit unit) throws ExecutionException
      Get the result of the task

      Asserts that the task completes within the given time

      Parameters:
      time - the time to wait for the task to complete
      unit - the unit for time
      Returns:
      the task result
      Throws:
      ExecutionException - if the task threw an exception instead of returning
    • isAwaiting

      public boolean isAwaiting()
      Whether this task is awaiting its barrier right now

      This method returns immediately.

      Returns:
      true if this task is currently waiting on its barrier, otherwise false