package org.sky.auto.data.testng.excel;
import java.lang.reflect.Method;
import java.util.Iterator;
import org.databene.benerator.Generator;
import org.databene.benerator.anno.AnnotationMapper;
import org.databene.benerator.anno.DefaultPathResolver;
import org.databene.benerator.engine.BeneratorContext;
import org.databene.benerator.engine.DefaultBeneratorContext;
import org.databene.benerator.factory.EquivalenceGeneratorFactory;
import org.databene.model.data.DataModel;
import org.testng.annotations.DataProvider;
public class TestNGFeed {
@DataProvider
public Iterator<Object[]> feeder(Method testMethod){
Class<?> testClass = testMethod.getDeclaringClass();
EquivalenceGeneratorFactory generatorFactory=new EquivalenceGeneratorFactory();
DefaultPathResolver pathResolver = new DefaultPathResolver();
DataModel dataModel = new DataModel();
AnnotationMapper mapper = new AnnotationMapper(generatorFactory, dataModel, pathResolver);
BeneratorContext context = new DefaultBeneratorContext();
context.setGeneratorFactory(generatorFactory);
mapper.parseClassAnnotations(testClass.getAnnotations(), context);
Generator<Object[]>generator = mapper.createAndInitMethodParamsGenerator(testMethod, context);
return new FeedIterator(generator);
}
}