[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