From 61067c33885883c1cd72292da6474df34d526efe Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Wed, 17 Jan 2024 18:04:03 +0200 Subject: [PATCH] - Write the results to a json-file when testing v4 guidelines. - Add missing changes in tests. --- pom.xml | 8 +++++ .../eu/dnetlib/validator2/engine/Test.java | 4 +-- .../dnetlib/validator2/engine/Test_FAIR.java | 4 +-- .../validator2/engine/Test_FAIR_LIT.java | 4 +-- .../validator2/engine/Test_v2_data.java | 8 ++--- .../eu/dnetlib/validator2/engine/Test_v4.java | 30 ++++++++++++++++--- 6 files changed, 44 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index f43978b..3b149ce 100644 --- a/pom.xml +++ b/pom.xml @@ -93,6 +93,14 @@ compile + + + + com.google.code.gson + gson + 2.10.1 + + diff --git a/src/test/java/eu/dnetlib/validator2/engine/Test.java b/src/test/java/eu/dnetlib/validator2/engine/Test.java index 15495e9..a4e5b62 100644 --- a/src/test/java/eu/dnetlib/validator2/engine/Test.java +++ b/src/test/java/eu/dnetlib/validator2/engine/Test.java @@ -39,8 +39,8 @@ public class Test { logger.info("Processing \"" + fileName + "\""); Document doc = builder.parse(new File(fileName)); XMLApplicationProfile.ValidationResult result = profile.validate(fileName, doc); - scorePerDoc.put(fileName, result.score()); - Map results = result.results(); + scorePerDoc.put(fileName, result.getScore()); + Map results = result.getResults(); for ( Map.Entry entry : results.entrySet() ) { logger.info(entry.getKey() + " = " + entry.getValue()); } diff --git a/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR.java b/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR.java index ac731d8..f8b8d88 100644 --- a/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR.java +++ b/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR.java @@ -42,8 +42,8 @@ public class Test_FAIR { logger.info("Processing \"" + fileName + "\""); Document doc = builder.parse(new File(fileName)); XMLApplicationProfile.ValidationResult result = profile.validate(fileName, doc); - scorePerDoc.put(fileName, result.score()); - Map results = result.results(); + scorePerDoc.put(fileName, result.getScore()); + Map results = result.getResults(); if ( logger.isDebugEnabled() ) { for ( Map.Entry entry : results.entrySet() ) { diff --git a/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java b/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java index bb1bed7..ef0784e 100644 --- a/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java +++ b/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java @@ -44,8 +44,8 @@ public class Test_FAIR_LIT { logger.info("Processing \"" + fileName + "\""); Document doc = builder.parse(new File(fileName)); XMLApplicationProfile.ValidationResult result = profile.validate(fileName, doc); - scorePerDoc.put(fileName, result.score()); - Map results = result.results(); + scorePerDoc.put(fileName, result.getScore()); + Map results = result.getResults(); if ( logger.isDebugEnabled() ) { for ( Map.Entry entry : results.entrySet() ) { diff --git a/src/test/java/eu/dnetlib/validator2/engine/Test_v2_data.java b/src/test/java/eu/dnetlib/validator2/engine/Test_v2_data.java index 77d3fe6..b2b9d3e 100644 --- a/src/test/java/eu/dnetlib/validator2/engine/Test_v2_data.java +++ b/src/test/java/eu/dnetlib/validator2/engine/Test_v2_data.java @@ -40,15 +40,15 @@ public class Test_v2_data { logger.info("Processing \"" + fileName + "\""); Document doc = builder.parse(new File(fileName)); XMLApplicationProfile.ValidationResult result = profile.validate(fileName, doc); - scorePerDoc.put(fileName, result.score()); - Map results = result.results(); + scorePerDoc.put(fileName, result.getScore()); + Map results = result.getResults(); for ( Map.Entry entry : results.entrySet() ) { String key = entry.getKey(); Guideline.Result value = entry.getValue(); logger.debug(key + " = " + value); if ( key.contains("Date")) { - logger.info("Warnings: " + results.get(key).warnings().toString()); - logger.info("Errors: " + results.get(key).errors().toString()); + logger.info("Warnings: " + results.get(key).getWarnings().toString()); + logger.info("Errors: " + results.get(key).getErrors().toString()); logger.info("Result: " + key + " = " + value + "\n"); } } diff --git a/src/test/java/eu/dnetlib/validator2/engine/Test_v4.java b/src/test/java/eu/dnetlib/validator2/engine/Test_v4.java index 116b6a1..e671731 100644 --- a/src/test/java/eu/dnetlib/validator2/engine/Test_v4.java +++ b/src/test/java/eu/dnetlib/validator2/engine/Test_v4.java @@ -1,5 +1,6 @@ package eu.dnetlib.validator2.engine; +import com.google.gson.Gson; import eu.dnetlib.validator2.validation.XMLApplicationProfile; import eu.dnetlib.validator2.validation.guideline.Guideline; import eu.dnetlib.validator2.validation.guideline.openaire.AbstractOpenAireProfile; @@ -9,7 +10,11 @@ import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import javax.xml.parsers.DocumentBuilder; +import java.io.BufferedWriter; import java.io.File; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.LinkedHashMap; import java.util.Map; import java.util.OptionalDouble; @@ -37,20 +42,37 @@ public class Test_v4 { DocumentBuilder builder = TestUtils.getDocumentBuilder(); if ( builder == null ) return; + + final Gson gson = new Gson(); + for ( String fileName : FILES ) { try { logger.info("Processing \"" + fileName + "\""); Document doc = builder.parse(new File(fileName)); XMLApplicationProfile.ValidationResult result = profile.validate(fileName, doc); - scorePerDoc.put(fileName, result.score()); - Map results = result.results(); + + // Test writing to json-file. + ////////////////////////////////////////// + String resultsFile = System.getProperty("user.dir") + File.separator + "results_v4.json"; + logger.info("Will append the results into the results-file: " + resultsFile); + try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(resultsFile), StandardCharsets.UTF_8)) { + writer.append("\n"); + writer.append(gson.toJson(result)); + } catch (Exception e) { + logger.error("Error when writing the \"ValidationResult\" as json into the results-file: " + resultsFile); + return; + } + ///////////////////////////////////////// + + scorePerDoc.put(fileName, result.getScore()); + Map results = result.getResults(); for ( Map.Entry entry : results.entrySet() ) { String key = entry.getKey(); Guideline.Result value = entry.getValue(); logger.debug(key + " = " + value); if ( key.contains("Date")) { - logger.info("Warnings: " + results.get(key).warnings().toString()); - logger.info("Errors: " + results.get(key).errors().toString()); + logger.info("Warnings: " + results.get(key).getWarnings().toString()); + logger.info("Errors: " + results.get(key).getErrors().toString()); logger.info("Result: " + key + " = " + value + "\n"); } }