
net.serenitybdd.junit.runners.DataDrivenAnnotations Maven / Gradle / Ivy
package net.serenitybdd.junit.runners;
import com.google.common.base.Splitter;
import net.thucydides.core.guice.Injectors;
import net.thucydides.core.model.DataTable;
import net.thucydides.core.steps.FilePathParser;
import net.thucydides.core.steps.stepdata.CSVTestDataSource;
import net.thucydides.core.steps.stepdata.TestDataSource;
import net.thucydides.core.util.EnvironmentVariables;
import net.thucydides.junit.annotations.TestData;
import net.thucydides.junit.annotations.UseTestDataFrom;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class DataDrivenAnnotations {
private final EnvironmentVariables environmentVariables;
private final Pattern DATASOURCE_PATH_SEPARATORS = Pattern.compile("[;,]");
public static DataDrivenAnnotations forClass(final Class testClass) {
return new DataDrivenAnnotations(testClass);
}
private final Class testClass;
DataDrivenAnnotations(final Class testClass) {
this(testClass, Injectors.getInjector().getProvider(EnvironmentVariables.class).get());
}
DataDrivenAnnotations(final Class testClass, EnvironmentVariables environmentVariables) {
this.testClass = testClass;
this.environmentVariables = environmentVariables;
}
public DataDrivenAnnotations usingEnvironmentVariables(EnvironmentVariables environmentVariables) {
return new DataDrivenAnnotations(this.testClass, environmentVariables);
}
public DataTable getParametersTableFromTestDataSource() throws Throwable {
TestDataSource testDataSource = new CSVTestDataSource(findTestDataSource(), findTestDataSeparator());
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy