migrate NQuadsParserTest to make it use strict datatype handling apparently previously a test with a non-XSD datatype that should have been failing was not failing
if non-XSD datatypes need to be supported now, when datatype validation/verification is enabled, they need to have custom org.openrdf.rio.DatatypeHandler implementations Project: http://git-wip-us.apache.org/repos/asf/any23/repo Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/d5cedee7 Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/d5cedee7 Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/d5cedee7 Branch: refs/heads/ANY23-141 Commit: d5cedee775e1cab51372c7a343735fe3cea0a85c Parents: 86846dc Author: Peter Ansell <[email protected]> Authored: Fri Apr 19 13:46:04 2013 +1000 Committer: Peter Ansell <[email protected]> Committed: Fri Apr 19 13:46:04 2013 +1000 ---------------------------------------------------------------------- .../apache/any23/io/nquads/NQuadsParserTest.java | 30 ++++++++++++-- 1 files changed, 25 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/any23/blob/d5cedee7/nquads/src/test/java/org/apache/any23/io/nquads/NQuadsParserTest.java ---------------------------------------------------------------------- diff --git a/nquads/src/test/java/org/apache/any23/io/nquads/NQuadsParserTest.java b/nquads/src/test/java/org/apache/any23/io/nquads/NQuadsParserTest.java index 1e7d545..8d25e02 100644 --- a/nquads/src/test/java/org/apache/any23/io/nquads/NQuadsParserTest.java +++ b/nquads/src/test/java/org/apache/any23/io/nquads/NQuadsParserTest.java @@ -33,6 +33,8 @@ import org.openrdf.rio.RDFHandler; import org.openrdf.rio.RDFHandlerException; import org.openrdf.rio.RDFParseException; import org.openrdf.rio.RDFParser; +import org.openrdf.rio.RioSetting; +import org.openrdf.rio.helpers.BasicParserSettings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,7 +43,9 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import static org.hamcrest.core.Is.is; @@ -63,9 +67,15 @@ public class NQuadsParserTest { parser = new NQuadsParser(); rdfHandler = new TestRDFHandler(); parser.setRDFHandler(rdfHandler); - parser.setVerifyData(true); - parser.setDatatypeHandling(RDFParser.DatatypeHandling.VERIFY); - parser.setStopAtFirstError(true); + Set<RioSetting<?>> nonFatalErrors = new HashSet<RioSetting<?>>(); + parser.getParserConfig().setNonFatalErrors(nonFatalErrors); + parser.getParserConfig().set(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES, false); + parser.getParserConfig().addNonFatalError(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES); + parser.getParserConfig().set(BasicParserSettings.VERIFY_DATATYPE_VALUES, false); + parser.getParserConfig().addNonFatalError(BasicParserSettings.VERIFY_DATATYPE_VALUES); + parser.getParserConfig().set(BasicParserSettings.NORMALIZE_DATATYPE_VALUES, false); + parser.getParserConfig().addNonFatalError(BasicParserSettings.NORMALIZE_DATATYPE_VALUES); + } @After @@ -443,7 +453,7 @@ public class NQuadsParserTest { verifyStatementWithInvalidDatatype(RDFParser.DatatypeHandling.IGNORE); } - @Test + @Test(expected = RDFParseException.class) public void testStatementWithInvalidDatatypeAndVerifyValidation() throws RDFHandlerException, IOException, RDFParseException { verifyStatementWithInvalidDatatype(RDFParser.DatatypeHandling.VERIFY); @@ -529,7 +539,12 @@ public class NQuadsParserTest { "<http://it.wikipedia.org/wiki/Camillo_Benso,_conte_di_Cavour#absolute-line=20> ." ).getBytes() ); - parser.setDatatypeHandling(datatypeHandling); + if(datatypeHandling == RDFParser.DatatypeHandling.VERIFY) { + parser.getParserConfig().setNonFatalErrors(new HashSet<RioSetting<?>>()); + parser.getParserConfig().set(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES, true); + parser.getParserConfig().set(BasicParserSettings.VERIFY_DATATYPE_VALUES, true); + } + //parser.setDatatypeHandling(datatypeHandling); parser.parse(bais, "http://base-uri"); } @@ -544,6 +559,11 @@ public class NQuadsParserTest { "<http://it.wikipedia.org/wiki/Camillo_Benso,_conte_di_Cavour#absolute-line=20> ." ).getBytes() ); + if(datatypeHandling == RDFParser.DatatypeHandling.VERIFY) { + parser.getParserConfig().setNonFatalErrors(new HashSet<RioSetting<?>>()); + parser.getParserConfig().set(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES, true); + parser.getParserConfig().set(BasicParserSettings.VERIFY_DATATYPE_VALUES, true); + } parser.parse(bais, "http://base-uri"); rdfHandler.assertHandler(1); }
