-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8c14a66
commit 4036fa6
Showing
4 changed files
with
216 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
src/test/java/org/junit/testsupport/AllTestSupportTests.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package org.junit.testsupport; | ||
|
||
import org.junit.runner.RunWith; | ||
import org.junit.runners.Suite; | ||
|
||
@RunWith(Suite.class) | ||
@Suite.SuiteClasses({ | ||
EventCollectorMatchersTest.class, | ||
EventCollectorTest.class | ||
}) | ||
public class AllTestSupportTests { | ||
} |
63 changes: 63 additions & 0 deletions
63
src/test/java/org/junit/testsupport/EventCollectorMatchersTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package org.junit.testsupport; | ||
|
||
import org.hamcrest.Matcher; | ||
import org.junit.Test; | ||
import org.junit.runner.Description; | ||
import org.junit.runner.Result; | ||
import org.junit.runner.RunWith; | ||
import org.junit.runner.notification.Failure; | ||
import org.junit.runners.Parameterized; | ||
|
||
import static org.hamcrest.CoreMatchers.not; | ||
import static org.hamcrest.MatcherAssert.assertThat; | ||
import static org.junit.runners.Parameterized.Parameter; | ||
import static org.junit.runners.Parameterized.Parameters; | ||
import static org.junit.testsupport.EventCollectorMatchers.everyTestRunSuccessful; | ||
import static org.junit.testsupport.EventCollectorMatchers.hasNoAssumptionFailure; | ||
import static org.junit.testsupport.EventCollectorMatchers.hasSingleAssumptionFailure; | ||
|
||
@RunWith(Parameterized.class) | ||
public class EventCollectorMatchersTest { | ||
private static final Description DUMMY_DESCRIPTION = Description.EMPTY; | ||
|
||
private static final Failure DUMMY_FAILURE = new Failure(null, new RuntimeException("dummy message")); | ||
|
||
private static final Result DUMMY_RESULT = new Result(); | ||
|
||
private static final EventCollector COLLECTOR_WITH_NO_EVENTS = new EventCollector(); | ||
|
||
private static final EventCollector COLLECTOR_WITH_SINGLE_FAILURE = new EventCollector() {{ | ||
testFailure(DUMMY_FAILURE); | ||
}}; | ||
|
||
private static final EventCollector COLLECTOR_WITH_SINGLE_ASSUMPTION_FAILURE = new EventCollector() {{ | ||
testAssumptionFailure(DUMMY_FAILURE); | ||
}}; | ||
|
||
@Parameters(name = "{0}") | ||
public static Object[][] data() { | ||
return new Object[][] { | ||
{"everyTestRunSuccessful() matches if no failures are reported", COLLECTOR_WITH_NO_EVENTS, everyTestRunSuccessful()}, | ||
{"everyTestRunSuccessful() does not match if failure is reported", COLLECTOR_WITH_SINGLE_FAILURE, not(everyTestRunSuccessful())}, | ||
{"everyTestRunSuccessful() does not match if assumption failure is reported", COLLECTOR_WITH_SINGLE_ASSUMPTION_FAILURE, not(everyTestRunSuccessful())}, | ||
{"hasNoAssumptionFailure() matches if no assumption failure is reported", COLLECTOR_WITH_NO_EVENTS, hasNoAssumptionFailure()}, | ||
{"hasNoAssumptionFailure() does not match if assumption failure is reported", COLLECTOR_WITH_SINGLE_ASSUMPTION_FAILURE, not(hasNoAssumptionFailure())}, | ||
{"hasSingleAssumptionFailure() matches if single assumption failure is reported", COLLECTOR_WITH_SINGLE_ASSUMPTION_FAILURE, hasSingleAssumptionFailure()}, | ||
{"hasSingleAssumptionFailure() does not match if no assumption failure is reported", COLLECTOR_WITH_NO_EVENTS, not(hasSingleAssumptionFailure())} | ||
}; | ||
} | ||
|
||
@Parameter(0) | ||
public String testName; //must be assigned. Otherwise the Parameterized runner fails. | ||
|
||
@Parameter(1) | ||
public EventCollector collector; | ||
|
||
@Parameter(2) | ||
public Matcher<EventCollector> matcher; | ||
|
||
@Test | ||
public void matchesCollector() { | ||
assertThat(collector, matcher); | ||
} | ||
} |
139 changes: 139 additions & 0 deletions
139
src/test/java/org/junit/testsupport/EventCollectorTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
package org.junit.testsupport; | ||
|
||
import static java.util.Collections.singletonList; | ||
import static org.junit.Assert.assertEquals; | ||
import static org.junit.rules.ExpectedException.none; | ||
|
||
import java.util.List; | ||
|
||
import org.junit.Rule; | ||
import org.junit.Test; | ||
import org.junit.rules.ExpectedException; | ||
import org.junit.runner.Description; | ||
import org.junit.runner.Result; | ||
import org.junit.runner.notification.Failure; | ||
|
||
public class EventCollectorTest { | ||
private static final Description DUMMY_DESCRIPTION = Description.EMPTY; | ||
private static final Failure DUMMY_FAILURE = new Failure(null, null); | ||
private static final Result DUMMY_RESULT = new Result(); | ||
|
||
@Rule | ||
public final ExpectedException thrown = none(); | ||
|
||
private final EventCollector collector = new EventCollector(); | ||
|
||
@Test | ||
public void collectsTestRunsStarted() { | ||
collector.testRunStarted(DUMMY_DESCRIPTION); | ||
assertEquals(singletonList(DUMMY_DESCRIPTION), collector.getTestRunsStarted()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestRunsStarted() { | ||
assertNoDescriptionCanBeAddedToList(collector.getTestRunsStarted()); | ||
} | ||
|
||
@Test | ||
public void collectsTestRunsFinished() { | ||
collector.testRunFinished(DUMMY_RESULT); | ||
assertEquals(singletonList(DUMMY_RESULT), collector.getTestRunsFinished()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestRunsFinished() { | ||
assertNoResultCanBeAddedToList(collector.getTestRunsFinished()); | ||
} | ||
|
||
@Test | ||
public void collectsTestSuitesStarted() { | ||
collector.testSuiteStarted(DUMMY_DESCRIPTION); | ||
assertEquals(singletonList(DUMMY_DESCRIPTION), collector.getTestSuitesStarted()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestSuitesStarted() { | ||
assertNoDescriptionCanBeAddedToList(collector.getTestSuitesStarted()); | ||
} | ||
|
||
@Test | ||
public void collectsTestSuitesFinished() { | ||
collector.testSuiteFinished(DUMMY_DESCRIPTION); | ||
assertEquals(singletonList(DUMMY_DESCRIPTION), collector.getTestSuitesFinished()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestSuitesFinished() { | ||
assertNoDescriptionCanBeAddedToList(collector.getTestSuitesFinished()); | ||
} | ||
|
||
@Test | ||
public void collectsTestsStarted() { | ||
collector.testStarted(DUMMY_DESCRIPTION); | ||
assertEquals(singletonList(DUMMY_DESCRIPTION), collector.getTestsStarted()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestsStarted() { | ||
assertNoDescriptionCanBeAddedToList(collector.getTestsStarted()); | ||
} | ||
|
||
@Test | ||
public void collectsTestsFinished() { | ||
collector.testFinished(DUMMY_DESCRIPTION); | ||
assertEquals(singletonList(DUMMY_DESCRIPTION), collector.getTestsFinished()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestsFinished() { | ||
assertNoDescriptionCanBeAddedToList(collector.getTestsFinished()); | ||
} | ||
|
||
@Test | ||
public void collectsFailures() { | ||
collector.testFailure(DUMMY_FAILURE); | ||
assertEquals(singletonList(DUMMY_FAILURE), collector.getFailures()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfFailures() { | ||
assertNoFailureCanBeAddedToList(collector.getFailures()); | ||
} | ||
|
||
@Test | ||
public void collectsAssumptionFailures() { | ||
collector.testAssumptionFailure(DUMMY_FAILURE); | ||
assertEquals(singletonList(DUMMY_FAILURE), collector.getAssumptionFailures()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfAssumptionFailures() { | ||
assertNoFailureCanBeAddedToList(collector.getAssumptionFailures()); | ||
} | ||
|
||
@Test | ||
public void collectsTestsIgnored() { | ||
collector.testIgnored(DUMMY_DESCRIPTION); | ||
assertEquals(singletonList(DUMMY_DESCRIPTION), collector.getTestsIgnored()); | ||
} | ||
|
||
@Test | ||
public void returnsUnmodifiableListOfTestsIgnored() { | ||
assertNoDescriptionCanBeAddedToList(collector.getTestsIgnored()); | ||
} | ||
|
||
private void assertNoDescriptionCanBeAddedToList(List<Description> list) { | ||
thrown.expect(Exception.class); | ||
list.add(DUMMY_DESCRIPTION); | ||
} | ||
|
||
private void assertNoFailureCanBeAddedToList(List<Failure> list) { | ||
thrown.expect(Exception.class); | ||
list.add(DUMMY_FAILURE); | ||
} | ||
|
||
private void assertNoResultCanBeAddedToList(List<Result> list) { | ||
thrown.expect(Exception.class); | ||
list.add(DUMMY_RESULT); | ||
} | ||
} |