package org.junit.tests.listening; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import junit.framework.TestCase; import org.junit.Test; import org.junit.runner.Description; import org.junit.runner.JUnitCore; import org.junit.runner.notification.RunListener; public class RunnerTest { private boolean wasRun; public class MyListener extends RunListener { int testCount; @Override public void testRunStarted(Description description) { this.testCount = description.testCount(); } } public static class Example { @Test public void empty() { } } @Test public void newTestCount() { JUnitCore runner = new JUnitCore(); MyListener listener = new MyListener(); runner.addListener(listener); runner.run(Example.class); assertEquals(1, listener.testCount); } public static class ExampleTest extends TestCase { public void testEmpty() { } } @Test public void oldTestCount() { JUnitCore runner = new JUnitCore(); MyListener listener = new MyListener(); runner.addListener(listener); runner.run(ExampleTest.class); assertEquals(1, listener.testCount); } public static class NewExample { @Test public void empty() { } } @Test public void testFinished() { JUnitCore runner = new JUnitCore(); wasRun = false; RunListener listener = new MyListener() { @Override public void testFinished(Description description) { wasRun = true; } }; runner.addListener(listener); runner.run(NewExample.class); assertTrue(wasRun); } }