Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.junit.rules
Class RuleChain

    java.lang.Object
      org.junit.rules.RuleChain

All Implemented Interfaces:
  TestRule

    public class RuleChain

extends Object
implements TestRule

The RuleChain rule allows ordering of TestRules. You create a `RuleChain` with `outerRule(TestRule)` and subsequent calls of `around(TestRule)`:

     public static class UseRuleChain {
            @Rule
            public TestRule chain= RuleChain
                                   .outerRule(new LoggingRule("outer rule")
                                   .around(new LoggingRule("middle rule")
                                   .around(new LoggingRule("inner rule");

            @Test
            public void example() {
                    assertTrue(true);
            }
     }

writes the log

     starting outer rule
     starting middle rule
     starting inner rule
     finished inner rule
     finished middle rule
     finished outer rule

Method Summary
`Statement` | `apply(Statement base, Description description)` Modifies the method-running `Statement` to implement this test-running rule.
`RuleChain` | `around(TestRule enclosedRule)` Create a new `RuleChain`, which encloses the `nextRule` with the rules of the current `RuleChain`.
`static RuleChain` | `emptyRuleChain()` Returns a `RuleChain` without a `TestRule`.
`static RuleChain` | `outerRule(TestRule outerRule)` Returns a `RuleChain` with a single `TestRule`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### emptyRuleChain

    public static RuleChain emptyRuleChain()

  Returns a `RuleChain` without a `TestRule`. This method may be the starting point of a `RuleChain`.

  Returns:
    a `RuleChain` without a `TestRule`.

### outerRule

    public static RuleChain outerRule(TestRule outerRule)

  Returns a `RuleChain` with a single `TestRule`. This method is the usual starting point of a `RuleChain`.

  Parameters:
    `outerRule` - the outer rule of the `RuleChain`.
  Returns:
    a `RuleChain` with a single `TestRule`.

### around

    public RuleChain around(TestRule enclosedRule)

  Create a new `RuleChain`, which encloses the `nextRule` with the rules of the current `RuleChain`.

  Parameters:
    `enclosedRule` - the rule to enclose.
  Returns:
    a new `RuleChain`.

### apply

    public Statement apply(Statement base,
                           Description description)

  Modifies the method-running `Statement` to implement this test-running rule.

  Specified by:
    `apply` in interface `TestRule`
  Parameters:
    `base` - The `Statement` to be modified
    `description` - A `Description` of the test implemented in `base`
  Returns:
    a new statement, which may be the same as `base`, a wrapper around `base`, or a completely new Statement.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD