blob: f69e5023686c71fc12d666bbf8ddb87637afbb2a [file] [log] [blame]
package org.junit.tests.experimental.theories.runner;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.experimental.results.PrintableResult.testResult;
import static org.junit.experimental.results.ResultMatchers.isSuccessful;
import org.junit.Test;
import org.junit.experimental.theories.DataPoint;
import org.junit.experimental.theories.DataPoints;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;
public class FailingDataPointMethods {
@RunWith(Theories.class)
public static class HasFailingSingleDataPointMethod {
@DataPoint
public static int num = 10;
@DataPoint
public static int failingDataPoint() {
throw new RuntimeException();
}
@Theory
public void theory(int x) {
}
}
@Test
public void shouldFailFromExceptionsInSingleDataPointMethods() {
assertThat(testResult(HasWronglyIgnoredFailingSingleDataPointMethod.class), not(isSuccessful()));
}
@RunWith(Theories.class)
public static class HasFailingDataPointArrayMethod {
@DataPoints
public static int[] num = { 1, 2, 3 };
@DataPoints
public static int[] failingDataPoints() {
throw new RuntimeException();
}
@Theory
public void theory(int x) {
}
}
@Test
public void shouldFailFromExceptionsInDataPointArrayMethods() {
assertThat(testResult(HasFailingDataPointArrayMethod.class), not(isSuccessful()));
}
@RunWith(Theories.class)
public static class HasIgnoredFailingSingleDataPointMethod {
@DataPoint
public static int num = 10;
@DataPoint(ignoredExceptions=Throwable.class)
public static int failingDataPoint() {
throw new RuntimeException();
}
@Theory
public void theory(int x) {
}
}
@Test
public void shouldIgnoreSingleDataPointMethodExceptionsOnRequest() {
assertThat(testResult(HasIgnoredFailingSingleDataPointMethod.class), isSuccessful());
}
@RunWith(Theories.class)
public static class HasIgnoredFailingMultipleDataPointMethod {
@DataPoint
public static int num = 10;
@DataPoints(ignoredExceptions=Throwable.class)
public static int[] failingDataPoint() {
throw new RuntimeException();
}
@Theory
public void theory(int x) {
}
}
@Test
public void shouldIgnoreMultipleDataPointMethodExceptionsOnRequest() {
assertThat(testResult(HasIgnoredFailingMultipleDataPointMethod.class), isSuccessful());
}
@RunWith(Theories.class)
public static class HasWronglyIgnoredFailingSingleDataPointMethod {
@DataPoint
public static int num = 10;
@DataPoint(ignoredExceptions=NullPointerException.class)
public static int failingDataPoint() {
throw new RuntimeException();
}
@Theory
public void theory(int x) {
}
}
@Test
public void shouldNotIgnoreNonMatchingSingleDataPointExceptions() {
assertThat(testResult(HasWronglyIgnoredFailingSingleDataPointMethod.class), not(isSuccessful()));
}
@RunWith(Theories.class)
public static class HasWronglyIgnoredFailingMultipleDataPointMethod {
@DataPoint
public static int num = 10;
@DataPoint(ignoredExceptions=NullPointerException.class)
public static int failingDataPoint() {
throw new RuntimeException();
}
@Theory
public void theory(int x) {
}
}
@Test
public void shouldNotIgnoreNonMatchingMultipleDataPointExceptions() {
assertThat(testResult(HasWronglyIgnoredFailingMultipleDataPointMethod.class), not(isSuccessful()));
}
}