| package org.junit.tests.running.core; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.io.ByteArrayOutputStream; |
| import java.io.PrintStream; |
| |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.junit.runner.JUnitCore; |
| |
| public class CommandLineTest { |
| private ByteArrayOutputStream results; |
| private PrintStream oldOut; |
| private static boolean testWasRun; |
| |
| @Before |
| public void before() { |
| oldOut = System.out; |
| results = new ByteArrayOutputStream(); |
| System.setOut(new PrintStream(results)); |
| } |
| |
| @After |
| public void after() { |
| System.setOut(oldOut); |
| } |
| |
| public static class Example { |
| @Test |
| public void test() { |
| testWasRun = true; |
| } |
| } |
| |
| @Test |
| public void runATest() { |
| testWasRun = false; |
| new MainRunner().runWithCheckForSystemExit(new Runnable() { |
| public void run() { |
| JUnitCore.main("org.junit.tests.running.core.CommandLineTest$Example"); |
| } |
| }); |
| assertTrue(testWasRun); |
| } |
| |
| @Test |
| public void runAClass() { |
| testWasRun = false; |
| JUnitCore.runClasses(Example.class); |
| assertTrue(testWasRun); |
| } |
| |
| private static int fCount; |
| |
| public static class Count { |
| @Test |
| public void increment() { |
| fCount++; |
| } |
| } |
| |
| @Test |
| public void runTwoClassesAsArray() { |
| fCount = 0; |
| JUnitCore.runClasses(new Class[]{Count.class, Count.class}); |
| assertEquals(2, fCount); |
| } |
| |
| @Test |
| public void runTwoClasses() { |
| fCount = 0; |
| JUnitCore.runClasses(Count.class, Count.class); |
| assertEquals(2, fCount); |
| } |
| } |