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

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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 Detail

#### TimeoutUninterruptableTest

    public TimeoutUninterruptableTest()

### Method Detail

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