1 package org.junit.tests.listening; 2 3 import static org.junit.Assert.assertEquals; 4 import static org.junit.Assert.assertTrue; 5 6 import junit.framework.TestCase; 7 import org.junit.Test; 8 import org.junit.runner.Description; 9 import org.junit.runner.JUnitCore; 10 import org.junit.runner.notification.RunListener; 11 12 public class RunnerTest { 13 14 private boolean wasRun; 15 16 public class MyListener extends RunListener { 17 18 int testCount; 19 20 @Override 21 public void testRunStarted(Description description) { 22 this.testCount = description.testCount(); 23 } 24 } 25 26 public static class Example { 27 @Test 28 public void empty() { 29 } 30 } 31 32 @Test 33 public void newTestCount() { 34 JUnitCore runner = new JUnitCore(); 35 MyListener listener = new MyListener(); 36 runner.addListener(listener); 37 runner.run(Example.class); 38 assertEquals(1, listener.testCount); 39 } 40 41 public static class ExampleTest extends TestCase { 42 public void testEmpty() { 43 } 44 } 45 46 @Test 47 public void oldTestCount() { 48 JUnitCore runner = new JUnitCore(); 49 MyListener listener = new MyListener(); 50 runner.addListener(listener); 51 runner.run(ExampleTest.class); 52 assertEquals(1, listener.testCount); 53 } 54 55 public static class NewExample { 56 @Test 57 public void empty() { 58 } 59 } 60 61 @Test 62 public void testFinished() { 63 JUnitCore runner = new JUnitCore(); 64 wasRun = false; 65 RunListener listener = new MyListener() { 66 @Override 67 public void testFinished(Description description) { 68 wasRun = true; 69 } 70 }; 71 runner.addListener(listener); 72 runner.run(NewExample.class); 73 assertTrue(wasRun); 74 } 75 }