use of ru.sbtqa.tag.datajack.callback.GeneratorCallback in project page-factory-2 by sbtqa.
the class DataFactory method getDataProvider.
public static TestDataProvider getDataProvider() throws DataException {
if (testDataProvider == null) {
String initialCollection = PROPERTIES.getDataInitialCollection();
String dataFolder = PROPERTIES.getDataFolder();
String dataType = PROPERTIES.getDataType();
String dataExtension = PROPERTIES.getDataExtension();
switch(dataType) {
case "json":
testDataProvider = initProvider(PROVIDERS.JSON_DATA_PROVIDER, dataFolder, initialCollection, (dataExtension.equals("")) ? "json" : dataExtension);
break;
case "properties":
testDataProvider = initProvider(PROVIDERS.PROPERTIES_DATA_PROVIDER, dataFolder, initialCollection, (dataExtension.equals("")) ? "properties" : dataExtension, PROPERTIES.getDataArrayDelimiter());
break;
case "excel":
testDataProvider = initProvider(PROVIDERS.EXCEL_DATA_PROVIDER, dataFolder, initialCollection);
break;
case "mongo":
MongoClient mongoClient = new MongoClient(new MongoClientURI(PROPERTIES.getDataUri()));
MongoDatabase db = mongoClient.getDatabase(PROPERTIES.getDataDb());
testDataProvider = initProvider(PROVIDERS.MONGO_DATA_PROVIDER, db, initialCollection);
break;
case "stash":
LOG.debug("Data provider isn't set. Leaving all placeholders as is.");
break;
default:
LOG.debug(format("Using custom data provider %s", dataType));
if (!dataExtension.isEmpty() && !PROPERTIES.getDataDb().isEmpty()) {
throw new DataException("data.extension and data.db could not be set both");
}
testDataProvider = initProvider(dataType, dataFolder, initialCollection, dataExtension + PROPERTIES.getDataDb());
}
}
if (!PROPERTIES.getGeneratorsClass().isEmpty()) {
String className = PROPERTIES.getGeneratorsClass();
try {
testDataProvider.applyGenerator((Class<? extends GeneratorCallback>) DataFactory.class.getClassLoader().loadClass(className));
} catch (ClassNotFoundException e) {
throw new DataException(format("Could not find generators class at classpath: %s", className));
} catch (ClassCastException ex) {
throw new ClassCastException(format("Class %s doesn't extend %s", className, GeneratorCallback.class.getName()));
}
}
return testDataProvider;
}
Aggregations