package com.flextrade.jfixture.runners; import com.flextrade.jfixture.JFixture; import org.junit.runner.Description; import org.junit.runner.Runner; import org.junit.runner.notification.RunNotifier; import org.junit.runners.BlockJUnit4ClassRunner; import org.junit.runners.model.FrameworkMethod; import org.junit.runners.model.InitializationError; import org.junit.runners.model.Statement; public class JFixtureJUnitRunner extends Runner { private final BlockJUnit4ClassRunner runner; public JFixtureJUnitRunner(Class<?> clazz) throws InitializationError { this.runner = new BlockJUnit4ClassRunner(clazz) { protected Statement withBefores(FrameworkMethod method, Object target, Statement statement) { Statement base = super.withBefores(method, target, statement); return new JUnitJFixtureStatement(base, target, new JFixture()); } }; } @Override public void run(final RunNotifier notifier) { runner.run(notifier); } @Override public Description getDescription() { return runner.getDescription(); } }