in wilma-functionaltest/src/main/java/com/epam/gepard/datadriven/feeders/LabelBasedDataFeeder.java [314:362]
private int loadFeeder(final LabelBasedFeederDetails feederDetails) throws DataFeederException {
int result = 0;
// convert feeder file parameter into existing path
LabelBasedFeederFileLoader loaderType = LabelBasedFeederFileLoader.TXT;
String filePath = detectFilePath(feederDetails);
if (filePath.endsWith(".csv")) {
loaderType = LabelBasedFeederFileLoader.CSV;
}
feederDetails.setFeederFile(filePath);
// Select the required value
try {
// load feeder
loaderType.loadFeeder(feederDetails);
} catch (IOException e) {
String errorText = "Error reading LabelBasedDataFeeder: " + feederDetails.getFeederFile() + "\nfilePath: " + filePath;
throw new DataFeederException(errorText, ERROR_FEEDER_FILE_MISSING);
}
// if feeder label type is random, then shuffle parameter rows
if (LabelBasedFeederDetails.LabelType.RANDOM.equals(feederDetails.getLabelType())) {
Collections.shuffle(feederDetails.getParameterList());
feederDetails.reduceParameterList();
}
// if feeder label type is merge, then append the specified parameters in a row to a string
if (LabelBasedFeederDetails.LabelType.MERGE.equals(feederDetails.getLabelType())) {
String[] merged = new String[feederDetails.getParameterList().get(0).length];
Arrays.fill(merged, "");
for (int rowNum = 0; rowNum < feederDetails.getParameterList().size(); rowNum++) {
for (int colNum = 0; colNum < merged.length; colNum++) {
merged[colNum] += (rowNum == 0) ? feederDetails.getParameterList().get(rowNum)[colNum] : ","
+ feederDetails.getParameterList().get(rowNum)[colNum];
}
}
feederDetails.getParameterList().clear();
feederDetails.getParameterList().add(merged);
}
if (feederDetails.getParameterList().isEmpty()) {
result = ERROR_FEEDER_RELATION_NO_ROW_LOADED;
DataFeederLoader.reportError("Error reading LabelBasedDataFeeder - No rows loaded by the feeder: " + feederDetails.getFeederFile()
+ "\nfilePath: " + filePath);
}
return result;
}