Package 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
Description
`BulkheadAsynchRetryTest()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### BulkheadAsynchRetryTest

public BulkheadAsynchRetryTest()

## Method Details

### 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