public void loadFeeder()

in wilma-functionaltest/src/main/java/com/epam/gepard/datadriven/feeders/labelbasedfeederhelper/LabelBasedFeederFileLoader.java [131:178]


        public void loadFeeder(LabelBasedFeederDetails feederDetails) throws DataFeederException, IOException {
            String[] columnNames = null; // column names
            String[] lineArray; // line in read
            int lineNum = 0; // number of lines in the file

            CSVReader csvReader = new CSVReader(new InputStreamReader(this.getClass().getClassLoader()
                    .getResourceAsStream(feederDetails.getFeederFile())));
            while (feederDetails.getRowNumber() == 0 || LabelBasedFeederDetails.LabelType.RANDOM.equals(feederDetails.getLabelType()) || feederDetails
                    .getParameterList().size() < feederDetails.getRowNumber()) {
                lineArray = csvReader.readNext();
                if (lineArray == null) {
                    break; //exit from the loop
                }
                lineNum++;
                if ((lineArray.length == 1 && lineArray[0].trim().isEmpty())
                        || (lineArray.length >= 1 && (lineArray[0].trim().startsWith("#") || lineArray[0].trim().startsWith("//")))) {
                    continue;
                }

                // 1. not empty row is the column names row
                if (columnNames == null) {
                    columnNames = getColumnNamesFromHeaderRow(lineArray, lineNum, feederDetails);
                    // set parameter names to the feeder
                    feederDetails.setParameterNames(Arrays.asList(Arrays.copyOfRange(columnNames, 1, columnNames.length)));
                    continue;
                }

                // skip commented lines or lines that does not contain one of our labels
                if (!feederDetails.getLabels().isEmpty() && !isLabelPresent(getLabels(lineArray[0]), feederDetails.getLabels())) {
                    continue;
                }

                // Check row for errors
                if (lineArray.length <= 1) {
                    String errorText = "A row must contain at least a label and a value. Line: " + lineNum
                            + ", File:" + feederDetails.getFeederFile();
                    throw new DataFeederException(errorText, ERROR_FEEDER_FILE_CONTENT_ERROR);
                }
                if (columnNames.length != lineArray.length) {
                    String errorText = "Column number does not match in line: " + lineNum
                            + ", File:" + feederDetails.getFeederFile();
                    throw new DataFeederException(errorText, ERROR_FEEDER_FILE_CONTENT_ERROR);
                }

                // set parameter row to the feeder
                feederDetails.addParameterList(Arrays.copyOfRange(lineArray, 1, lineArray.length));
            }
        }