View Javadoc
1   package org.junit.rules;
2   
3   import org.junit.runner.Description;
4   import org.junit.runners.model.Statement;
5   
6   /**
7    * Runs a collection of rules on a statement.
8    *
9    * @since 4.9
10   */
11  public class RunRules extends Statement {
12      private final Statement statement;
13  
14      public RunRules(Statement base, Iterable<TestRule> rules, Description description) {
15          statement = applyAll(base, rules, description);
16      }
17  
18      @Override
19      public void evaluate() throws Throwable {
20          statement.evaluate();
21      }
22  
23      private static Statement applyAll(Statement result, Iterable<TestRule> rules,
24              Description description) {
25          for (TestRule each : rules) {
26              result = each.apply(result, description);
27          }
28          return result;
29      }
30  }