org.eclipse.microprofile.fault.tolerance.tck

## Class FallbackTest

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

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

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

Test fallback was invoked correctly; fallback handler supporting CDI injection; type safety on fallback class.

Author:
  Neil Young

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

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static org.jboss.shrinkwrap.api.spec.WebArchive` `deploy()`
`void` `testClassLevelFallbackSuccess()` Analogous to testFallbackSuccess with Class level annotations that are inherited by serviceA but overridden by serviceB.
`void` `testFallbackMethodSuccess()` Test that a method in a Fallback service is driven after the specified number of retries are executed.
`void` `testFallbackMethodWithArgsSuccess()` Analogous to testFallbackMethodSuccess but serviceE has a pair of parameters.
`void` `testFallbackSuccess()` Test that a Fallback service is driven after the specified number of retries are executed.
`void` `testFallbackTimeout()` Test that a Fallback service is driven after the specified number of retries are executed.
`void` `testFallbacktNoTimeout()` Test that a Fallback service is driven after the specified number of retries are executed.
`void` `testFallbackWithBeanSuccess()` A refinement on testFallbackSuccess to test that a bean may be injected in the FallbackHandler.
`void` `testStandaloneHandlerFallback()` Test that a Fallback service can work alone, without other annotations.
`void` `testStandaloneMethodFallback()` Test that a Fallback service can work alone, without other annotations.

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

#### FallbackTest

    public FallbackTest()

### Method Detail

#### deploy

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

#### testFallbackSuccess

    public void testFallbackSuccess()

Test that a Fallback service is driven after the specified number of retries are executed. Each of serviceA and serviceB specify the same FallbackHandler. The test checks that the handler has been driven in the correct ExecutionContext and that the Service has been executed the correct number of times.

#### testFallbackWithBeanSuccess

    public void testFallbackWithBeanSuccess()

A refinement on testFallbackSuccess to test that a bean may be injected in the FallbackHandler. Each of serviceA and serviceB specify the same FallbackHandler. The test checks that the handler has been driven in the correct ExecutionContext and that the Service has been executed the correct number of times.

#### testClassLevelFallbackSuccess

    public void testClassLevelFallbackSuccess()

Analogous to testFallbackSuccess with Class level annotations that are inherited by serviceA but overridden by serviceB.

#### testFallbacktNoTimeout

    public void testFallbacktNoTimeout()

Test that a Fallback service is driven after the specified number of retries are executed. A timeout is configured for serviceC but the service should fail before the timeout is reached and generate a RuntimeException. After a retry the Fallback will be executed.

#### testFallbackTimeout

    public void testFallbackTimeout()

Test that a Fallback service is driven after the specified number of retries are executed. A timeout is configured for serviceC and in this case the service should generate Timeout exceptions. After a retry the Fallback will be executed.

#### testFallbackMethodSuccess

    public void testFallbackMethodSuccess()

Test that a method in a Fallback service is driven after the specified number of retries are executed. ServiceD specifies a method on a FallbackHandler. The test checks that the FallbackHandler method has been driven and that the Service has been executed the correct number of times.

#### testFallbackMethodWithArgsSuccess

    public void testFallbackMethodWithArgsSuccess()

Analogous to testFallbackMethodSuccess but serviceE has a pair of parameters. ServiceE specifies a method on a FallbackHandler. The test checks that the FallbackHandler method has been driven and that the Service has been executed the correct number of times.

#### testStandaloneHandlerFallback

    public void testStandaloneHandlerFallback()

Test that a Fallback service can work alone, without other annotations.

ServiceA fallback is driven by a class implementing FallbackHandler. ServiceA is only called once.

#### testStandaloneMethodFallback

    public void testStandaloneMethodFallback()

Test that a Fallback service can work alone, without other annotations.

ServiceB fallback is driven by a FallbackHandler method in the same class. ServiceB is only called once.