package org.junit.rules;

import org.junit.runner.Description;
import org.junit.runners.model.Statement;

Runs a collection of rules on a statement.
Since:4.9
/** * Runs a collection of rules on a statement. * * @since 4.9 */
public class RunRules extends Statement { private final Statement statement; public RunRules(Statement base, Iterable<TestRule> rules, Description description) { statement = applyAll(base, rules, description); } @Override public void evaluate() throws Throwable { statement.evaluate(); } private static Statement applyAll(Statement result, Iterable<TestRule> rules, Description description) { for (TestRule each : rules) { result = each.apply(result, description); } return result; } }