package junitparams;
import junitparams.internal.parameters.ParametersReader;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.RunWith;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.assertEquals;
import static java.lang.String.format;
public class MultipleParameterProvidersTest {
@RunWith(JUnitParamsRunner.class)
private class CantInitializeWithValueAndMethodProvider {
private Object[] extraProvider() {
return new Object[][]{
{"test", "test"},
};
}
@Parameters(value = {"test, test"}, method = "extraProvider")
@Test
public void testWithValueAndMethodProviders(String input, String output) {
assertEquals(input, output);
}
}
@Test
public void testWithValueAndMethodProvidersThrowsIllegalStateException() {
Result testResult = JUnitCore.runClasses(CantInitializeWithValueAndMethodProvider.class);
assertEquals(1, testResult.getFailureCount());
Failure testFailure = testResult.getFailures().iterator().next();
assertEquals(IllegalStateException.class, testFailure.getException().getClass());
assertEquals(format(ParametersReader.ILLEGAL_STATE_EXCEPTION_MESSAGE, "testWithValueAndMethodProviders"),
testFailure.getMessage());
}
}