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 }