blob: 62c892cd010f3d8cb87e49d1ca38f497f751c154 [file] [log] [blame]
package org.junit.tests.running.classes.parent;
import org.junit.Assert;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import java.lang.reflect.Field;
/**
* Test class for validate run tests that was load in own ClassLoader
*/
public class TestWithClassRule {
public static Class<?> applyTestClass;
@ClassRule
public static TestRule rule = new CustomRule();
@Test
public void testClassRuleExecuted() throws Exception {
Assert.assertNotNull("Description should contain reference to TestClass", applyTestClass);
}
public static final class CustomRule implements TestRule {
public Statement apply(final Statement base, final Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
Class<?> testClass = description.getTestClass();
if(testClass != null) {
Field field = testClass.getDeclaredField("applyTestClass");
field.set(null, description.getTestClass());
}
base.evaluate();
}
};
}
}
}