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