[testng] 102/355: Prefer explicit DataProvider's name
Eugene Zhukov
eugene-guest at moszumanska.debian.org
Tue Aug 18 10:19:53 UTC 2015
This is an automated email from the git hooks/post-receive script.
eugene-guest pushed a commit to annotated tag OpenBSD
in repository testng.
commit 35dbfdd73020c7f422868551777135736b787523
Author: Piotr Turski <piotr.turski at gmail.com>
Date: Sun Dec 14 21:59:26 2014 +0100
Prefer explicit DataProvider's name
---
src/main/java/org/testng/internal/Parameters.java | 7 ++++++-
.../ExplicitDataProviderNameSample.java | 16 ++++++++++++++++
.../dataprovider/ExplicitDataProviderNameTest.java | 22 ++++++++++++++++++++++
src/test/resources/testng.xml | 1 +
4 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/testng/internal/Parameters.java b/src/main/java/org/testng/internal/Parameters.java
index b6072a7..3708011 100755
--- a/src/main/java/org/testng/internal/Parameters.java
+++ b/src/main/java/org/testng/internal/Parameters.java
@@ -15,6 +15,7 @@ import org.testng.internal.ParameterHolder.ParameterOrigin;
import org.testng.internal.annotations.AnnotationHelper;
import org.testng.internal.annotations.IAnnotationFinder;
import org.testng.internal.annotations.IDataProvidable;
+import org.testng.util.Strings;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
@@ -326,7 +327,7 @@ public class Parameters {
for (Method m : ClassHelper.getAvailableMethods(cls)) {
IDataProviderAnnotation dp = (IDataProviderAnnotation)
finder.findAnnotation(m, IDataProviderAnnotation.class);
- if (null != dp && (name.equals(dp.getName()) || name.equals(m.getName()))) {
+ if (null != dp && name.equals(getDataProviderName(dp, m))) {
if (shouldBeStatic && (m.getModifiers() & Modifier.STATIC) == 0) {
throw new TestNGException("DataProvider should be static: " + m);
}
@@ -341,6 +342,10 @@ public class Parameters {
return result;
}
+ private static String getDataProviderName(IDataProviderAnnotation dp, Method m) {
+ return Strings.isNullOrEmpty(dp.getName()) ? m.getName() : dp.getName();
+ }
+
@SuppressWarnings({"deprecation"})
private static Object[] createParameters(Method m, MethodParameters params,
IAnnotationFinder finder, XmlSuite xmlSuite, Class annotationClass, String atName)
diff --git a/src/test/java/test/dataprovider/ExplicitDataProviderNameSample.java b/src/test/java/test/dataprovider/ExplicitDataProviderNameSample.java
new file mode 100644
index 0000000..089b13b
--- /dev/null
+++ b/src/test/java/test/dataprovider/ExplicitDataProviderNameSample.java
@@ -0,0 +1,16 @@
+package test.dataprovider;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class ExplicitDataProviderNameSample {
+
+ @Test(dataProvider="dp_name")
+ public void should_find_exactly_one_data_provider(int i) {}
+
+ @DataProvider(name="dp_name")
+ Object[][] whatever_implicit_name() {return new Object[][] {{1}};}
+
+ @DataProvider(name="whatever_explicit_name")
+ Object[][] dp_name() {return null;}
+}
\ No newline at end of file
diff --git a/src/test/java/test/dataprovider/ExplicitDataProviderNameTest.java b/src/test/java/test/dataprovider/ExplicitDataProviderNameTest.java
new file mode 100644
index 0000000..fba7bd8
--- /dev/null
+++ b/src/test/java/test/dataprovider/ExplicitDataProviderNameTest.java
@@ -0,0 +1,22 @@
+package test.dataprovider;
+
+import static org.testng.Assert.assertEquals;
+
+import org.testng.TestListenerAdapter;
+import org.testng.TestNG;
+import org.testng.annotations.Test;
+
+import test.SimpleBaseTest;
+
+public class ExplicitDataProviderNameTest extends SimpleBaseTest {
+
+ @Test(description = "TESTNG-576: Prefer DataProvider explicit name")
+ public void should_prefer_dataProvider_explicit_name() {
+ TestNG testng = create(ExplicitDataProviderNameSample.class);
+ TestListenerAdapter tla = new TestListenerAdapter();
+ testng.addListener(tla);
+ testng.run();
+
+ assertEquals(tla.getPassedTests().size(), 1, "All tests should success");
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/testng.xml b/src/test/resources/testng.xml
index da203c0..34da7d0 100644
--- a/src/test/resources/testng.xml
+++ b/src/test/resources/testng.xml
@@ -463,6 +463,7 @@
<class name="test.dataprovider.IterableTest" />
<class name="test.dataprovider.ConfigurationAndDataProvidersTest" />
<class name="test.dataprovider.BooleanTest" />
+ <class name="test.dataprovider.ExplicitDataProviderNameTest" />
<class name="test.dataprovider.MethodTest"/>
<class name="test.dataprovider.StaticDataProviderSampleTest" />
<class name="test.dataprovider.UnnamedDataProviderTest" />
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git
More information about the pkg-java-commits
mailing list