All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.arquillian.testng.TestDataProviderTransformer Maven / Gradle / Ivy

/**
 * 
 */
package org.jboss.arquillian.testng;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

import org.testng.IAnnotationTransformer;
import org.testng.annotations.DataProvider;
import org.testng.annotations.ITestAnnotation;
import org.testng.internal.annotations.TestAnnotation;

/**
 * A IAnnotationTransformer that will add the {@link TestEnricherDataProvider} as {@link DataProvider} 
 * to the given test method to enable method argument injection support. 
 *
 * @author Aslak Knutsen
 * @version $Revision: $
 */
public class TestDataProviderTransformer implements IAnnotationTransformer
{

   /* (non-Javadoc)
    * @see org.testng.IAnnotationTransformer#transform(org.testng.annotations.ITestAnnotation, java.lang.Class, java.lang.reflect.Constructor, java.lang.reflect.Method)
    */
   @SuppressWarnings("rawtypes")
   public void transform(ITestAnnotation testAnnotation, Class clazz, Constructor constructor, Method method)
   {
      if (testAnnotation.getDataProviderClass() == null)
      {
         if (testAnnotation instanceof TestAnnotation)
         {
            TestAnnotation annoation = (TestAnnotation) testAnnotation;
            annoation.setDataProviderClass(TestEnricherDataProvider.class);
            annoation.setDataProvider(TestEnricherDataProvider.PROVIDER_NAME);
         }
      }
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy