package org.junit.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import junit.framework.JUnit4TestAdapter; 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); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(RunnerTest.class); } }