From 0375e856eccb7a418143fb55d7f5adc3087a04ba Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@inaf.it>
Date: Thu, 17 Oct 2024 10:05:51 +0300
Subject: [PATCH] adds test for csv-metadata parser

---
 .../src/test/java/csv-parse/CsvParser.java    | 52 ++++++++++++++++
 .../src/test/java/csv-parse/Makefile          |  8 +++
 .../src/test/java/csv-parse/pom.xml           | 59 +++++++++++++++++++
 3 files changed, 119 insertions(+)
 create mode 100644 data-discovery/src/test/java/csv-parse/CsvParser.java
 create mode 100644 data-discovery/src/test/java/csv-parse/Makefile
 create mode 100644 data-discovery/src/test/java/csv-parse/pom.xml

diff --git a/data-discovery/src/test/java/csv-parse/CsvParser.java b/data-discovery/src/test/java/csv-parse/CsvParser.java
new file mode 100644
index 0000000..29ce599
--- /dev/null
+++ b/data-discovery/src/test/java/csv-parse/CsvParser.java
@@ -0,0 +1,52 @@
+
+import com.opencsv.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.ArrayList;
+import java.io.Reader;
+
+class CsvParser
+{
+   public static void main(String[] args) throws Exception
+   {
+      Path filePath = Paths.get(args[0]);
+
+      CsvParser parser = new CsvParser();
+
+      List<String[]> lines = parser.readLineByLine(filePath);
+
+      for(String[] strArr : lines)
+      {
+         for(String str : strArr) System.out.print(str + " | ");
+         System.out.println();
+      }
+   }
+
+   public List<String[]> readLineByLine(Path filePath) throws Exception
+   {
+      CSVParser parser = new CSVParserBuilder()
+         .withSeparator(',')
+         .withIgnoreQuotations(true)
+         .build();
+
+      List<String[]> list = new ArrayList<>();
+      try (Reader reader = Files.newBufferedReader(filePath))
+      {
+         try (CSVReader csvReader = new CSVReaderBuilder(reader)
+               .withSkipLines(0)
+               .withCSVParser(parser)
+               .build();
+               // CSVReader csvReader = new CSVReader(reader)
+             )
+         {
+            String[] line;
+            while ((line = csvReader.readNext()) != null) {
+               list.add(line);
+            }
+         }
+      }
+      return list;
+   }
+}
diff --git a/data-discovery/src/test/java/csv-parse/Makefile b/data-discovery/src/test/java/csv-parse/Makefile
new file mode 100644
index 0000000..1aa9b4e
--- /dev/null
+++ b/data-discovery/src/test/java/csv-parse/Makefile
@@ -0,0 +1,8 @@
+
+
+build:
+	javac -classpath /home/robi/.m2/repository/com/opencsv/opencsv/5.7.1/opencsv-5.7.1.jar CsvParser.java
+
+
+run:
+	java -classpath /home/robi/.m2/repository/com/opencsv/opencsv/5.7.1/opencsv-5.7.1.jar:.:/home/robi/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar CsvParser /srv/vlkb/surveys/survey_populate.csv 
diff --git a/data-discovery/src/test/java/csv-parse/pom.xml b/data-discovery/src/test/java/csv-parse/pom.xml
new file mode 100644
index 0000000..4835791
--- /dev/null
+++ b/data-discovery/src/test/java/csv-parse/pom.xml
@@ -0,0 +1,59 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>vlkb</groupId>
+  <artifactId>csv-parser</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>csv matadata parser</name>
+  <url>http://maven.apache.org</url>
+
+  <properties>
+          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+          <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+          <!-- FIXME needs JAVA_HOME=/usr/java/jdk-17.0.4.1 (java17 manually installed and aletrnatives activated) -->
+          <maven.compiler.source>17</maven.compiler.source>
+          <maven.compiler.target>17</maven.compiler.target>
+  </properties>
+
+
+  <dependencies>
+
+          <dependency>
+                  <groupId>com.opencsv</groupId>
+                  <artifactId>opencsv</artifactId>
+                  <version>5.7.1</version>
+                  <scope>provided</scope>
+          </dependency>
+
+
+          <dependency>
+                  <groupId>junit</groupId>
+                  <artifactId>junit</artifactId>
+                  <version>3.8.1</version>
+                  <scope>test</scope>
+          </dependency>
+
+  </dependencies>
+
+  <build>
+          <finalName>csv-parser</finalName>
+          <plugins>
+                  <plugin>
+                          <!-- Build an executable JAR -->
+                          <groupId>org.apache.maven.plugins</groupId>
+                          <artifactId>maven-jar-plugin</artifactId>
+                          <version>3.1.0</version>
+                          <configuration>
+                                  <archive>
+                                          <manifest>
+                                                  <addClasspath>true</addClasspath>
+                                                  <classpathPrefix>lib/</classpathPrefix>
+                                                  <mainClass>CsvParser</mainClass>
+                                          </manifest>
+                                  </archive>
+                          </configuration>
+                  </plugin>
+  </plugins>  </build>
+
+</project>
-- 
GitLab