package org.junit.tests.experimental.theories.runner; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.junit.Assume.assumeThat; import static org.junit.experimental.results.PrintableResult.testResult; import org.hamcrest.Matcher; 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; @RunWith(Theories.class) public class WhenNoParametersMatch { @DataPoints public static int[] ints = {0, 1, 3, 5, 1776}; @DataPoints public static Matcher<?>[] matchers = {not(0), is(1)}; @RunWith(Theories.class) public static class AssumptionsFail { @DataPoint public static int DATA = 0; @DataPoint public static Matcher<Integer> MATCHER = null; @Theory public void nonZeroIntsAreFun(int x) { assumeThat(x, MATCHER); } } @Theory public void showFailedAssumptionsWhenNoParametersFound(int data, Matcher<Integer> matcher) throws Exception { assumeThat(data, not(matcher)); AssumptionsFail.DATA = data; AssumptionsFail.MATCHER = matcher; String result = testResult(AssumptionsFail.class).toString(); assertThat(result, containsString(matcher.toString())); assertThat(result, containsString("" + data)); } }