aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/junitparams/ParametersReaderProvidersTest.java
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2016-07-12 11:23:47 +0100
committerPaul Duffin <paulduffin@google.com>2016-07-20 15:24:23 +0100
commitfd1f9491413fcdbfae3cbd43651db31fdabce41a (patch)
tree58f3125a8ac5aae2139281886fca5b80f53cf853 /src/test/java/junitparams/ParametersReaderProvidersTest.java
parent896c3e9298b039ead2b21a6377a01a63df7f20f7 (diff)
downloadplatform_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.java103
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;
+ }
+ }
+}