How to use parse method of org.testingisdocumenting.webtau.utils.CsvUtils class

Best Webtau code snippet using org.testingisdocumenting.webtau.utils.CsvUtils.parse

Source:DataCsv.java Github

copy

Full Screen

...33 * @param fileOrResourcePath relative file path, absolute file path or classpath resource path34 * @return table data with CSV content35 */36 public TableData table(String fileOrResourcePath) {37 return parseCsvTextAsStep(DataPath.fromFileOrResourcePath(fileOrResourcePath),38 (text) -> tableFromListOfMaps(CsvUtils.parse(text)));39 }40 /**41 * Use <code>data.csv.table</code> to read data as {@link TableData} from CSV file.42 * <p>43 * Passed path is either relative based on working dir or absolute file path.44 * @param filePath relative file path or absolute file path45 * @return table data with CSV content46 */47 public TableData table(Path filePath) {48 return parseCsvTextAsStep(DataPath.fromFilePath(filePath),49 (text) -> tableFromListOfMaps(CsvUtils.parse(text)));50 }51 /**52 * Use <code>data.csv.tableAutoConverted</code> to read data as {@link TableData} from CSV file. Numeric values become values of Numeric type instead of String type.53 * <p>54 * Passed path is either relative based on working dir or absolute file path. Or it can be a resource class path.55 * @param fileOrResourcePath relative file path, absolute file path or classpath resource path56 * @return table data with CSV content57 */58 public TableData tableAutoConverted(String fileOrResourcePath) {59 return parseCsvTextAsStep(DataPath.fromFileOrResourcePath(fileOrResourcePath),60 (text) -> tableFromListOfMaps(CsvUtils.parseWithAutoConversion(text)));61 }62 /**63 * Use <code>data.csv.tableAutoConverted</code> to read data as {@link TableData} from CSV file. Numeric values become values of Numeric type instead of String type.64 * <p>65 * Passed path is either relative based on working dir or absolute file path.66 * @param filePath relative file path or absolute file path67 * @return table data with CSV content68 */69 public TableData tableAutoConverted(Path filePath) {70 return parseCsvTextAsStep(DataPath.fromFilePath(filePath),71 (text) -> tableFromListOfMaps(CsvUtils.parseWithAutoConversion(text)));72 }73 /**74 * Use <code>data.csv.listOfMaps</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.75 * <p>76 * Passed path is either relative based on working dir or absolute file path. Or it can be a resource class path.77 * @param fileOrResourcePath relative file path, absolute file path or classpath resource path78 * @return list of maps79 */80 public List<Map<String, String>> listOfMaps(String fileOrResourcePath) {81 return parseCsvTextAsStep(DataPath.fromFileOrResourcePath(fileOrResourcePath), CsvUtils::parse);82 }83 /**84 * Use <code>data.csv.listOfMaps</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.85 * <p>86 * Passed path is either relative based on working dir or absolute file path.87 * @param filePath relative file path or absolute file path88 * @return list of maps89 */90 public List<Map<String, String>> listOfMaps(Path filePath) {91 return parseCsvTextAsStep(DataPath.fromFilePath(filePath), CsvUtils::parse);92 }93 /**94 * Use <code>data.csv.listOfMapsAutoConverted</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.95 * Numeric values become values of Numeric type instead of String type.96 * <p>97 * Passed path is either relative based on working dir or absolute file path. Or it can be a resource class path.98 * @param fileOrResourcePath relative file path, absolute file path or classpath resource path99 * @return list of maps100 */101 public List<Map<String, Object>> listOfMapsAutoConverted(String fileOrResourcePath) {102 return parseCsvTextAsStep(DataPath.fromFileOrResourcePath(fileOrResourcePath),103 CsvUtils::parseWithAutoConversion);104 }105 /**106 * Use <code>data.csv.listOfMapsAutoConverted</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.107 * Numeric values become values of Numeric type instead of String type.108 * <p>109 * Passed path is either relative based on working dir or absolute file path.110 * @param filePath relative file path or absolute file path111 * @return list of maps112 */113 public List<Map<String, Object>> listOfMapsAutoConverted(Path filePath) {114 return parseCsvTextAsStep(DataPath.fromFilePath(filePath),115 CsvUtils::parseWithAutoConversion);116 }117 /**118 * Use <code>data.csv.listOfMaps(header, path)</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.119 * <p>120 * Header will be taken from first parameter and first row of CSV file will not be treated as header.121 * <p>122 * Passed path is either relative based on working dir or absolute file path. Or it can be a resource class path.123 * @param header header values124 * @param fileOrResourcePath relative file path, absolute file path or classpath resource path125 * @return list of maps126 */127 public List<Map<String, String>> listOfMaps(Collection<String> header, String fileOrResourcePath) {128 return parseCsvTextAsStep(DataPath.fromFileOrResourcePath(fileOrResourcePath),129 (text) -> CsvUtils.parse(header, text));130 }131 /**132 * Use <code>data.csv.listOfMaps(header, path)</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.133 * <p>134 * Header will be taken from first parameter and first row of CSV file will not be treated as header.135 * <p>136 * Passed path is either relative based on working dir or absolute file path.137 * @param header header values138 * @param filePath relative file path or absolute file path139 * @return list of maps140 */141 public List<Map<String, String>> listOfMaps(Collection<String> header, Path filePath) {142 return parseCsvTextAsStep(DataPath.fromFilePath(filePath),143 (text) -> CsvUtils.parse(header, text));144 }145 /**146 * Use <code>data.csv.listOfMapsAutoConverted(header, path)</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.147 * <p>148 * Header will be taken from first parameter and first row of CSV file will not be treated as header.149 * Numeric values become values of Numeric type instead of String type.150 * <p>151 * Passed path is either relative based on working dir or absolute file path. Or it can be a resource class path.152 * @param header header values153 * @param fileOrResourcePath relative file path, absolute file path or classpath resource path154 * @return list of maps155 */156 public List<Map<String, Object>> listOfMapsAutoConverted(List<String> header, String fileOrResourcePath) {157 return parseCsvTextAsStep(DataPath.fromFileOrResourcePath(fileOrResourcePath),158 (text) -> CsvUtils.parseWithAutoConversion(header, text));159 }160 /**161 * Use <code>data.csv.listOfMapsAutoConverted(header, path)</code> to read data as {@link java.util.List} of {@link java.util.Map} from CSV file.162 * Header will be taken from first parameter and first row of CSV file will not be treated as header.163 * Numeric values become values of Numeric type instead of String type.164 * Passed path is either relative based on working dir or absolute file path.165 * @param header header values166 * @param filePath relative file path or absolute file path167 * @return list of maps168 */169 public List<Map<String, Object>> listOfMapsAutoConverted(List<String> header, Path filePath) {170 return parseCsvTextAsStep(DataPath.fromFilePath(filePath),171 (text) -> CsvUtils.parseWithAutoConversion(header, text));172 }173 /**174 * Use <code>data.csv.write</code> to write data to CSV file.175 * @param path relative path or absolute file path of file to create176 * @param rows list of maps to write as CSV177 * @return full path to a newly created file178 */179 public Path write(Path path, List<Map<String, Object>> rows) {180 return writeCsvContentAsStep(path, () -> CsvUtils.serialize(rows));181 }182 /**183 * Use <code>data.csv.write</code> to write data to CSV file.184 * @param path relative path or absolute file path of file to create185 * @param rows list of maps to write as CSV186 * @return full path to a newly created file187 */188 public Path write(String path, List<Map<String, Object>> rows) {189 return writeCsvContentAsStep(Paths.get(path), () -> CsvUtils.serialize(rows));190 }191 private static <R> R parseCsvTextAsStep(DataPath dataPath, Function<String, R> convertor) {192 return readAndConvertTextContentAsStep("csv", dataPath, convertor);193 }194 private static Path writeCsvContentAsStep(Path path, Supplier<String> convertor) {195 return writeTextContentAsStep("csv", path, convertor);196 }197 @SuppressWarnings("unchecked")198 private TableData tableFromListOfMaps(List<?> listOfMaps) {199 if (listOfMaps.isEmpty()) {200 return new TableData(Collections.emptyList());201 }202 Map<String, Object> firstRow = (Map<String, Object>) listOfMaps.get(0);203 TableData result = new TableData(firstRow.keySet().stream());204 listOfMaps.forEach((row) -> {205 Map<String, Object> asMap = (Map<String, Object>) row;...

Full Screen

Full Screen

Source:CsvUtils.java Github

copy

Full Screen

...28import static java.util.stream.Collectors.*;29public class CsvUtils {30 private CsvUtils() {31 }32 public static List<Map<String, String>> parse(String content) {33 return parse(Collections.emptyList(), content);34 }35 public static List<Map<String, Object>> parseWithAutoConversion(String content) {36 return convertValues(NumberFormat.getNumberInstance(), parse(content));37 }38 public static List<Map<String, String>> parse(Collection<String> header, String content) {39 List<Map<String, String>> tableData = new ArrayList<>();40 CSVParser csvRecords = readCsvRecords(header, content);41 Collection<String> headerToUse = header.isEmpty() ?42 csvRecords.getHeaderMap().keySet() :43 header;44 for (CSVRecord record : csvRecords) {45 tableData.add(createRow(headerToUse, record));46 }47 return tableData;48 }49 public static List<Map<String, Object>> parseWithAutoConversion(List<String> header, String content) {50 return convertValues(NumberFormat.getNumberInstance(),51 parse(header, content));52 }53 public static String serialize(List<Map<String, Object>> rows) {54 if (rows.isEmpty()) {55 return "";56 }57 return CsvUtils.serialize(58 rows.get(0).keySet().stream(),59 rows.stream().map(Map::values));60 }61 public static String serialize(Stream<String> header, Stream<Collection<Object>> rows) {62 try {63 StringWriter out = new StringWriter();64 CSVPrinter csvPrinter = new CSVPrinter(out, CSVFormat.DEFAULT.withHeader(header.toArray(String[]::new)));65 Iterator<Collection<Object>> it = rows.iterator();66 while (it.hasNext()) {67 csvPrinter.printRecord(it.next());68 }69 return out.toString();70 } catch (IOException e) {71 throw new RuntimeException(e);72 }73 }74 private static CSVParser readCsvRecords(Collection<String> header, String content) {75 try {76 CSVFormat csvFormat = CSVFormat.RFC4180;77 if (header.isEmpty()) {78 csvFormat = csvFormat.withFirstRecordAsHeader();79 }80 return csvFormat.81 withIgnoreSurroundingSpaces().82 withIgnoreEmptyLines().83 withTrim().84 withDelimiter(',').85 parse(new StringReader(content));86 } catch (IOException e) {87 throw new RuntimeException(e);88 }89 }90 private static Map<String, String> createRow(Collection<String> header, CSVRecord record) {91 Map<String, String> row = new LinkedHashMap<>();92 int idx = 0;93 try {94 for (String columnName : header) {95 String value = record.get(idx);96 row.put(columnName, value);97 idx++;98 }99 } catch (Exception e) {100 throw new RuntimeException("Can't parse " + record, e);101 }102 return row;103 }104 private static List<Map<String, Object>> convertValues(NumberFormat numberFormat, List<Map<String, String>> data) {105 return data.stream().map((e) -> convertRecord(numberFormat, e)).collect(toList());106 }107 private static Map<String, Object> convertRecord(NumberFormat numberFormat, Map<String, String> row) {108 Map<String, Object> entry = new LinkedHashMap<>();109 row.forEach((k, v) -> entry.put(k, convertValue(numberFormat, v)));110 return entry;111 }112 private static Object convertValue(NumberFormat numberFormat, Object v) {113 String s = v.toString();114 return StringUtils.isNumeric(numberFormat, s) ? StringUtils.convertToNumber(numberFormat, s) : s;...

Full Screen

Full Screen

parse

Using AI Code Generation

copy

Full Screen

1import org.testingisdocumenting.webtau.utils.CsvUtils;2import java.util.List;3public class 1 {4 public static void main(String[] args) {54,5,6";6 List<List<String>> csvData = CsvUtils.parse(csv);7 System.out.println(csvData);8 }9}

Full Screen

Full Screen

parse

Using AI Code Generation

copy

Full Screen

1import org.testingisdocumenting.webtau.utils.CsvUtils;2import java.util.List;3public class 1 {4 public static void main(String[] args) {54,5,6";6 List<List<String>> parsedCsv = CsvUtils.parse(csv);7 for (List<String> row : parsedCsv) {8 for (String cell : row) {9 System.out.print(cell + " ");10 }11 System.out.println();12 }13 }14}15parse(java.lang.String)16public CsvUtils()17public static java.util.List<java.util.List<java.lang.String>> parse(java.lang.String csv)18public static java.util.List<java.util.List<java.lang.String>> parse(java.io.InputStream is)19public static java.util.List<java.util.List<java.lang.String>> parse(java.io.Reader r)20public static java.util.List<java.util.List<java.lang.String>> parse(java.io.File f)21public static java.util.List<java.util.List<java.lang.String>> parse(java.net.URL url)

Full Screen

Full Screen

parse

Using AI Code Generation

copy

Full Screen

1import org.testingisdocumenting.webtau.utils.CsvUtils;2import java.util.List;3public class CsvUtilsParseExample {4 public static void main(String[] args) {5";6 List<List<String>> parsed = CsvUtils.parse(csv);7 for (List<String> row : parsed) {8 System.out.println(row);9 }10 }11}

Full Screen

Full Screen

parse

Using AI Code Generation

copy

Full Screen

1import org.testingisdocumenting.webtau.utils.CsvUtils;2import java.util.List;3import java.util.Map;4public class Test {5 public static void main(String[] args) {6jane,30,paris";7 List<Map<String, String>> parsedCsv = CsvUtils.parse(csv);8 System.out.println(parsedCsv);9 }10}11[{name=john, age=20, city=london}, {name=jane, age=30, city=paris}]

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Webtau automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful