diff options
author | Paul Duffin <paulduffin@google.com> | 2016-07-12 11:23:47 +0100 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2016-07-20 15:24:23 +0100 |
commit | fd1f9491413fcdbfae3cbd43651db31fdabce41a (patch) | |
tree | 58f3125a8ac5aae2139281886fca5b80f53cf853 /src/test/java/junitparams/ParametersReaderProvidersTest.java | |
parent | 896c3e9298b039ead2b21a6377a01a63df7f20f7 (diff) | |
download | platform_external_junit-params-fd1f9491413fcdbfae3cbd43651db31fdabce41a.tar.gz platform_external_junit-params-fd1f9491413fcdbfae3cbd43651db31fdabce41a.tar.bz2 platform_external_junit-params-fd1f9491413fcdbfae3cbd43651db31fdabce41a.zip |
Initial checkin of JUnitParams-1.0.5
Adds README.version, README.google, MODULE_LICENSE_APACHE2 files
as required by the process (see b/30087411).
The code does not yet compile; it requires patching to work with
Android API and JUnit 4.10. Those patches will be added in
separate commits to make it easy to identify the Android
specific changes. All the changes will be submitted together.
Bug: 30244565
Change-Id: Icf556377478c3afdd644c5e4db0ff18898f496ae
Test: Once it compiles the tests will be run.
Diffstat (limited to 'src/test/java/junitparams/ParametersReaderProvidersTest.java')
-rw-r--r-- | src/test/java/junitparams/ParametersReaderProvidersTest.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/test/java/junitparams/ParametersReaderProvidersTest.java b/src/test/java/junitparams/ParametersReaderProvidersTest.java new file mode 100644 index 0000000..d3992b6 --- /dev/null +++ b/src/test/java/junitparams/ParametersReaderProvidersTest.java @@ -0,0 +1,103 @@ +package junitparams; + +import junitparams.internal.ParameterisedTestMethodRunner; +import junitparams.internal.TestMethod; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.junit.runners.model.FrameworkMethod; +import org.junit.runners.model.TestClass; + +import java.lang.reflect.Method; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(JUnitParamsRunner.class) +public class ParametersReaderProvidersTest { + + @Rule + public ExpectedException exception = ExpectedException.none(); + + @Test + @Parameters(source = SingleParamSetProvider.class) + public void oneParamSetFromClass(String a, String b) { + assertThat(a).isEqualTo("a"); + assertThat(b).isEqualTo("b"); + } + + public static class SingleParamSetProvider { + public static Object[] provideOneParamSetSameTypes() { + return new Object[]{"a", "b"}; + } + } + + @Test + public void shouldPutProviderClassNameInExceptionMessageForProviderWithNoValidMethods() { + ParameterisedTestMethodRunner runner = new ParameterisedTestMethodRunner(getTestMethodWithInvalidProvider()); + + exception.expect(RuntimeException.class); + exception.expectMessage(ProviderClassWithNoValidMethods.class.getName()); + runner.method.parametersSets(); + } + + private TestMethod getTestMethodWithInvalidProvider() { + Method testMethod = TestClassWithProviderClassWithNoValidMethods.class.getMethods()[0]; + return new TestMethod(new FrameworkMethod(testMethod), new TestClass(TestClassWithProviderClassWithNoValidMethods.class)); + } + + @RunWith(JUnitParamsRunner.class) + static class TestClassWithProviderClassWithNoValidMethods { + @Test + @Parameters(source = ProviderClassWithNoValidMethods.class) + public void shouldDoNothingItsJustToConnectTestClassWithProvider() { + } + } + + static class ProviderClassWithNoValidMethods { + } + + @Test + @Parameters(source = OneIntegerProvider.class) + public void providedPrimitiveParams(int integer) { + assertThat(integer).isLessThan(4); + } + + public static class OneIntegerProvider { + public static Object[] provideTwoNumbers() { + return new Object[]{new Object[]{1}, new Object[]{2}}; + } + + public static Object[] provideOneNumber() { + return new Object[]{new Object[]{3}}; + } + } + + @Test + @Parameters(source = DomainObjectProvider.class) + public void providedDomainParams(DomainClass object1, DomainClass object2) { + assertThat(object1.toString()).isEqualTo("testNameOne"); + assertThat(object2.toString()).isEqualTo("testNameTwo"); + } + + public static class DomainObjectProvider { + public static Object[] provideDomainObject() { + return new Object[]{new Object[]{ + new DomainClass("testNameOne"), + new DomainClass("testNameTwo")}}; + } + } + + public static class DomainClass { + private final String name; + + public DomainClass(String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } + } +} |