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 <[email protected]> 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 _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

