View Javadoc
1   package org.junit.tests.running.classes;
2   
3   import static org.junit.Assert.assertEquals;
4   
5   import org.junit.Test;
6   import org.junit.experimental.runners.Enclosed;
7   import org.junit.runner.JUnitCore;
8   import org.junit.runner.Request;
9   import org.junit.runner.Result;
10  import org.junit.runner.RunWith;
11  import org.junit.runner.Runner;
12  
13  public class EnclosedTest {
14      @RunWith(Enclosed.class)
15      public static class Enclosing {
16          public static class A {
17              @Test
18              public void a() {}
19  
20              @Test
21              public void b() {}
22          }
23          public static class B {
24              @Test
25              public void a() {}
26  
27              @Test
28              public void b() {}
29  
30              @Test
31              public void c() {}
32          }
33          abstract public static class C {
34              @Test public void a() {}
35          }
36      }
37  
38      @Test
39      public void enclosedRunnerPlansConcreteEnclosedClasses() throws Exception {
40          Runner runner= Request.aClass(Enclosing.class).getRunner();
41          assertEquals(5, runner.testCount());
42      }
43  
44      @Test
45      public void enclosedRunnerRunsConcreteEnclosedClasses() throws Exception {
46          Result result= JUnitCore.runClasses(Enclosing.class);
47          assertEquals(5, result.getRunCount());
48      }
49  
50      @Test
51      public void enclosedRunnerIsNamedForEnclosingClass() throws Exception {
52          assertEquals(Enclosing.class.getName(), Request.aClass(Enclosing.class)
53                  .getRunner().getDescription().getDisplayName());
54      }
55  }