Package org.eclipse.microprofile.fault.tolerance.tck

# Class TimeoutUninterruptableTest

java.lang.Object
org.jboss.arquillian.testng.Arquillian
org.eclipse.microprofile.fault.tolerance.tck.TimeoutUninterruptableTest

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

public class TimeoutUninterruptableTest extends org.jboss.arquillian.testng.Arquillian
Test behaviour when a `@Timeout` is used but the method does not respond to interrupts.

This provokes a lot of edge case interactions between Timeout and other annotations.

Includes test for Timeout, Timeout + Async, Timeout + Async + Bulkhead, Timeout + Async + Retry.

## 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
`TimeoutUninterruptableTest()`

## Method Summary

Modifier and Type
Method
Description
`void`
`cleanup()`
Cleans up any waiting futures that have been created in the test
`static org.jboss.shrinkwrap.api.spec.WebArchive`
`deployment()`
`void`
`testTimeout()`
`void`
`testTimeoutAsync()`
`void`
`testTimeoutAsyncBulkhead()`
`void`
`testTimeoutAsyncBulkheadQueueTimed()`
Test that the timeout timer is started when the execution is added to the queue
`void`
`testTimeoutAsyncCS()`
`void`
`testTimeoutAsyncFallback()`
Test that the fallback is run as soon as the timeout occurs
`void`
`testTimeoutAsyncRetry()`

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

### TimeoutUninterruptableTest

public TimeoutUninterruptableTest()

## Method Details

### deployment

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

### testTimeout

public void testTimeout()

### testTimeoutAsync

public void testTimeoutAsync() throws Exception

Throws:
  `Exception`

### testTimeoutAsyncCS

public void testTimeoutAsyncCS() throws InterruptedException

Throws:
  `InterruptedException`

### testTimeoutAsyncBulkhead

public void testTimeoutAsyncBulkhead() throws InterruptedException

Throws:
  `InterruptedException`

### testTimeoutAsyncBulkheadQueueTimed

public void testTimeoutAsyncBulkheadQueueTimed() throws InterruptedException, ExecutionException
Test that the timeout timer is started when the execution is added to the queue

Throws:
  `InterruptedException` - if the test is interrupted
  `ExecutionException`

### testTimeoutAsyncRetry

public void testTimeoutAsyncRetry()

### testTimeoutAsyncFallback

public void testTimeoutAsyncFallback() throws InterruptedException
Test that the fallback is run as soon as the timeout occurs

Throws:
  `InterruptedException` - if the test is interrupted

### cleanup

@AfterMethod public void cleanup()
Cleans up any waiting futures that have been created in the test