View Javadoc
1   package org.junit.internal.builders;
2   
3   import java.util.Arrays;
4   import java.util.List;
5   
6   import org.junit.runner.Runner;
7   import org.junit.runners.model.RunnerBuilder;
8   
9   public class AllDefaultPossibilitiesBuilder extends RunnerBuilder {
10      private final boolean canUseSuiteMethod;
11  
12      public AllDefaultPossibilitiesBuilder(boolean canUseSuiteMethod) {
13          this.canUseSuiteMethod = canUseSuiteMethod;
14      }
15  
16      @Override
17      public Runner runnerForClass(Class<?> testClass) throws Throwable {
18          List<RunnerBuilder> builders = Arrays.asList(
19                  ignoredBuilder(),
20                  annotatedBuilder(),
21                  suiteMethodBuilder(),
22                  junit3Builder(),
23                  junit4Builder());
24  
25          for (RunnerBuilder each : builders) {
26              Runner runner = each.safeRunnerForClass(testClass);
27              if (runner != null) {
28                  return runner;
29              }
30          }
31          return null;
32      }
33  
34      protected JUnit4Builder junit4Builder() {
35          return new JUnit4Builder();
36      }
37  
38      protected JUnit3Builder junit3Builder() {
39          return new JUnit3Builder();
40      }
41  
42      protected AnnotatedBuilder annotatedBuilder() {
43          return new AnnotatedBuilder(this);
44      }
45  
46      protected IgnoredBuilder ignoredBuilder() {
47          return new IgnoredBuilder();
48      }
49  
50      protected RunnerBuilder suiteMethodBuilder() {
51          if (canUseSuiteMethod) {
52              return new SuiteMethodBuilder();
53          }
54          return new NullBuilder();
55      }
56  }