1 package mockit.integration.junit4;
2
3 import static org.junit.jupiter.api.Assertions.assertNotNull;
4 import static org.junit.jupiter.api.Assertions.assertNull;
5 import static org.junit.jupiter.api.Assertions.assertTrue;
6
7 import java.lang.annotation.Annotation;
8 import java.util.List;
9
10 import mockit.Injectable;
11 import mockit.Mocked;
12
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.junit.runner.RunWith;
16 import org.junit.runners.BlockJUnit4ClassRunner;
17 import org.junit.runners.model.InitializationError;
18
19 @RunWith(JUnit4CustomRunnerTest.CustomRunner.class)
20 public final class JUnit4CustomRunnerTest {
21 public static final class CustomRunner extends BlockJUnit4ClassRunner {
22 public CustomRunner(Class<?> testClass) throws InitializationError {
23 super(testClass);
24 }
25
26 @Override
27 protected void validatePublicVoidNoArgMethods(Class<? extends Annotation> annotation, boolean isStatic,
28 List<Throwable> errors) {
29 }
30
31 @Override
32 protected Object createTest() throws Exception {
33 testCount++;
34 return super.createTest();
35 }
36 }
37
38 static int testCount;
39
40 @Before
41 public void setUp() {
42 assertTrue(testCount == 1 || testCount == 2, "Unexpected test count: " + testCount);
43 }
44
45 @Test
46 public void withAnnotatedParameters(@Mocked Runnable runnable, @Injectable Dependency dep) {
47 assertNotNull(runnable);
48 assertNotNull(dep);
49 }
50
51 @Test
52 public void withNonAnnotatedParameters(Runnable runnable, Dependency dep) {
53 assertNull(runnable);
54 assertNull(dep);
55 }
56 }