From 94658b2be0f97f17638e445d94a7069f5f7e05c0 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Tue, 18 Jul 2023 14:46:03 +0200 Subject: [PATCH] - added external errorhandler - simplified code --- .../Validation/TestSLUBValidateDTD.java | 46 ++++++++++++++++--- .../Validation/TestSLUBValidateSchema.java | 19 +++----- 2 files changed, 45 insertions(+), 20 deletions(-) diff --git a/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateDTD.java b/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateDTD.java index df89537..b04e8e0 100644 --- a/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateDTD.java +++ b/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateDTD.java @@ -3,6 +3,7 @@ package org.slub.rosetta.dps.repository.plugin.Validation; import org.junit.Before; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; +import org.slub.rosetta.dps.repository.plugin.SLUBXmlErrorHandler; import org.slub.rosetta.dps.repository.plugin.ValidationCatalogResolver; import java.util.ArrayList; @@ -37,7 +38,8 @@ public class TestSLUBValidateDTD { }; List<String> errors = new ArrayList<>(); ValidationCatalogResolver validationCatalogResolver = new ValidationCatalogResolver(catalogs, errors, true); - var v = new SLUBValidateDTD( validationCatalogResolver ); + SLUBXmlErrorHandler errorHandler = new SLUBXmlErrorHandler(); + var v = new SLUBValidateDTD( validationCatalogResolver, errorHandler ); assertNotNull( "validator DTD sucessfully instantiated", v); var has_exception = false; boolean res = false; @@ -51,6 +53,29 @@ public class TestSLUBValidateDTD { assertFalse( has_exception ); assertFalse( res); } + @org.junit.Test + public void dtd_invalid2() { + String[] catalogs = new String[] { + initp.get("catalog") + }; + List<String> errors = new ArrayList<>(); + ValidationCatalogResolver validationCatalogResolver = new ValidationCatalogResolver(catalogs, errors, true); + SLUBXmlErrorHandler errorHandler = new SLUBXmlErrorHandler(); + var v = new SLUBValidateDTD( validationCatalogResolver, errorHandler ); + assertNotNull( "validator DTD sucessfully instantiated", v); + var has_exception = false; + boolean res = false; + try { + var doc = "resources/test/invalid/xhtml/xhtml11-sample.invalid.xml"; + res = v.validateAgainst(doc); + System.out.println("validating " + doc + " resulting in " + res); + } catch ( Exception e) { + has_exception = true; + } + assertFalse( has_exception ); + assertFalse( res); + } + @org.junit.Test /** regression: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.Map.containsKey(Object)" because "this.fTableOfIDAttributeNames" is null */ @@ -61,14 +86,16 @@ public class TestSLUBValidateDTD { List<String> errors = new ArrayList<>(); ValidationCatalogResolver validationCatalogResolver = new ValidationCatalogResolver(catalogs, errors, true); - var v = new SLUBValidateDTD( validationCatalogResolver ); + SLUBXmlErrorHandler errorHandler = new SLUBXmlErrorHandler(); + var v = new SLUBValidateDTD( validationCatalogResolver, errorHandler ); assertNotNull( "validator DTD sucessfully instantiated", v); var has_exception = false; boolean res = false; try { var doc = "resources/test/valid/mathml/mathml1.example1.xml"; res = v.validateAgainst(doc); - System.out.println("validating " + doc + " resulting in " + res+ " :" + v.get_errors()); + System.out.println("validating " + doc + " resulting in " + res); + } catch ( Exception e) { e.printStackTrace(); has_exception = true; @@ -85,14 +112,17 @@ public class TestSLUBValidateDTD { }; List<String> errors = new ArrayList<>(); ValidationCatalogResolver validationCatalogResolver = new ValidationCatalogResolver(catalogs, errors, true); - var v = new SLUBValidateDTD( validationCatalogResolver ); + SLUBXmlErrorHandler errorHandler = new SLUBXmlErrorHandler(); + var v = new SLUBValidateDTD( validationCatalogResolver , errorHandler); assertNotNull( "validator DTD sucessfully instantiated", v); var has_exception = false; boolean res = false; try { var doc = "resources/test/valid/mathml/mathml2.example1.xml"; res = v.validateAgainst(doc); - System.out.println("validating " + doc + " resulting in " + res+ " :" + v.get_errors()); + System.out.println("validating " + doc + " resulting in " + res); + System.out.println("RES: " + errorHandler.get_log() ); + } catch ( Exception e) { e.printStackTrace(); has_exception = true; @@ -108,7 +138,8 @@ public class TestSLUBValidateDTD { String[] catalogs = new String[0]; List<String> errors = new ArrayList<>(); ValidationCatalogResolver validationCatalogResolver = new ValidationCatalogResolver(catalogs, errors, true); - var v = new SLUBValidateDTD( validationCatalogResolver ); + SLUBXmlErrorHandler errorHandler = new SLUBXmlErrorHandler(); + var v = new SLUBValidateDTD( validationCatalogResolver, errorHandler ); assertNotNull( "validator DTD sucessfully instantiated", v); var has_exception = false; boolean res = false; @@ -132,7 +163,8 @@ public class TestSLUBValidateDTD { }; List<String> errors = new ArrayList<>(); ValidationCatalogResolver validationCatalogResolver = new ValidationCatalogResolver(catalogs, errors, true); - var v = new SLUBValidateDTD( validationCatalogResolver ); + SLUBXmlErrorHandler errorHandler = new SLUBXmlErrorHandler(); + var v = new SLUBValidateDTD( validationCatalogResolver, errorHandler ); assertNotNull( "validator DTD sucessfully instantiated", v); var has_exception = false; boolean res = false; diff --git a/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateSchema.java b/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateSchema.java index 0b731e2..51ff0bd 100644 --- a/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateSchema.java +++ b/java/org/slub/rosetta/dps/repository/plugin/Validation/TestSLUBValidateSchema.java @@ -10,10 +10,8 @@ import org.slub.rosetta.dps.repository.plugin.ValidationSchema; import java.io.File; import java.net.URI; import java.net.URISyntaxException; -import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Set; @@ -53,8 +51,8 @@ public class TestSLUBValidateSchema { @org.junit.Test public void schema_valid() { - List<String> errors = new ArrayList<>(); - ValidationResourceResolver validationResourceResolver = new ValidationResourceResolver(mock.getNamespaceSchemaMap(), errors, true); + + ValidationResourceResolver validationResourceResolver = new ValidationResourceResolver(mock.getNamespaceSchemaMap(), true); var v = new SLUBValidateSchema(validationResourceResolver); assertNotNull( "validator schema sucessfully instantiated", v); var has_exception = false; @@ -72,8 +70,7 @@ public class TestSLUBValidateSchema { @org.junit.Test public void schema_invalid() { - List<String> errors = new ArrayList<>(); - ValidationResourceResolver validationResourceResolver = new ValidationResourceResolver(mock.getNamespaceSchemaMap(), errors, true); + ValidationResourceResolver validationResourceResolver = new ValidationResourceResolver(mock.getNamespaceSchemaMap(), true); var v = new SLUBValidateSchema(validationResourceResolver); assertNotNull( "validator schema sucessfully instantiated", v); var has_exception = false; @@ -92,19 +89,15 @@ public class TestSLUBValidateSchema { @org.junit.Test public void check_import_regression() { - List<String> errors = new ArrayList<>(); Set<ValidationSchema> nssm = new HashSet<>(); Set<ValidationSchema> old = mock.getNamespaceSchemaMap(); - - var i = old.iterator(); - while (i.hasNext()) { // filter Atoim out to trigger error - var val = i.next(); - System.out.println("###### " + val.nameSpace); + for (ValidationSchema val : old) { // filter Atoim out to trigger error + System.out.println("###### " + val.nameSpace); if (!val.nameSpace.equals("http://www.w3.org/2005/Atom")) { nssm.add(val); } } - ValidationResourceResolver validationResourceResolver = new ValidationResourceResolver(nssm, errors, true); + ValidationResourceResolver validationResourceResolver = new ValidationResourceResolver(nssm, true); var v = new SLUBValidateSchema(validationResourceResolver); assertNotNull( "validator schema sucessfully instantiated", v); var has_exception = false; -- GitLab