org.eclipse.microprofile.fault.tolerance.tck.bulkhead

## Class BulkheadAsynchRetryTest

- java.lang.Object
- - org.jboss.arquillian.testng.Arquillian
  - - org.eclipse.microprofile.fault.tolerance.tck.bulkhead.BulkheadAsynchRetryTest

All Implemented Interfaces:
  org.testng.IHookable, org.testng.ITestNGListener

    public class BulkheadAsynchRetryTest
    extends org.jboss.arquillian.testng.Arquillian

This collection of tests tests that failures, particularly Asynchronous Bulkhead exception related failures will cause the Retry annotation logic to work correctly.

Author:
  Gordon Hutchison, carlosdlr, Andrew Rouse

### Nested Class Summary

### Nested classes/interfaces inherited from class org.jboss.arquillian.testng.Arquillian

`org.jboss.arquillian.testng.Arquillian.UpdateResultListener`

### Field Summary

### Fields inherited from class org.jboss.arquillian.testng.Arquillian

`ARQUILLIAN_DATA_PROVIDER`

### Constructor Summary

Constructors
Constructor and Description
`BulkheadAsynchRetryTest()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static org.jboss.shrinkwrap.api.spec.WebArchive` `deploy()` This is the Arquillian deploy method that controls the contents of the war that contains all the tests.
`void` `testBulkheadExceptionRetriedClassAsync()` Test that bulkhead exceptions are retried with annotations on class
`void` `testBulkheadExceptionRetriedMethodAsync()` Test that bulkhead exceptions are retried with annotations on method
`void` `testBulkheadExceptionThrownClassAsync()` Test that we still get BulkheadExceptions despite using Retry if the bulkhead remains full while the retry is active.
`void` `testBulkheadExceptionThrownMethodAsync()` Test that we still get BulkheadExceptions despite using Retry if the bulkhead remains full while the retry is active.
`void` `testNoRetriesWithAbortOn()` Test that retries do not occur when BulkheadException is included in the abortOn attribute
`void` `testNoRetriesWithoutRetryOn()` Test that retries do not occur when BulkheadException is not included in the retryOn attribute
`void` `testRetriesJoinBackOfQueue()` Test that when an execution is retried, it goes to the back of the bulkhead queue.
`void` `testRetriesReenterBulkhead()` Test that when an execution is retried, it doesn't hold onto its bulkhead slot.

### Methods inherited from class org.jboss.arquillian.testng.Arquillian

`arquillianAfterClass, arquillianAfterSuite, arquillianAfterTest, arquillianArgumentProvider, arquillianBeforeClass, arquillianBeforeSuite, arquillianBeforeTest, run`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BulkheadAsynchRetryTest

    public BulkheadAsynchRetryTest()

### Method Detail

#### deploy

    @Deployment
    public static org.jboss.shrinkwrap.api.spec.WebArchive deploy()

This is the Arquillian deploy method that controls the contents of the war that contains all the tests.

Returns:
  the test war "ftBulkheadAsynchTest.war"

#### testBulkheadExceptionThrownClassAsync

    public void testBulkheadExceptionThrownClassAsync()

Test that we still get BulkheadExceptions despite using Retry if the bulkhead remains full while the retry is active.

#### testBulkheadExceptionThrownMethodAsync

    public void testBulkheadExceptionThrownMethodAsync()

Test that we still get BulkheadExceptions despite using Retry if the bulkhead remains full while the retry is active.

#### testBulkheadExceptionRetriedMethodAsync

    public void testBulkheadExceptionRetriedMethodAsync()

Test that bulkhead exceptions are retried with annotations on method

#### testBulkheadExceptionRetriedClassAsync

    public void testBulkheadExceptionRetriedClassAsync()

Test that bulkhead exceptions are retried with annotations on class

#### testRetriesReenterBulkhead

    public void testRetriesReenterBulkhead()

Test that when an execution is retried, it doesn't hold onto its bulkhead slot.

This is particularly important if Retry is used with a long delay.

#### testRetriesJoinBackOfQueue

    public void testRetriesJoinBackOfQueue()

Test that when an execution is retried, it goes to the back of the bulkhead queue.

#### testNoRetriesWithoutRetryOn

    public void testNoRetriesWithoutRetryOn()
                                     throws InterruptedException

Test that retries do not occur when BulkheadException is not included in the retryOn attribute

Throws:
  `InterruptedException` - if the test is interrupted

#### testNoRetriesWithAbortOn

    public void testNoRetriesWithAbortOn()
                                  throws InterruptedException

Test that retries do not occur when BulkheadException is included in the abortOn attribute

Throws:
  `InterruptedException` - if the test is interrupted