📄 rdfcoretests.java
字号:
" select CASE, INPUT" + " from {CASE} <rdf:type> {<test:NegativeParserTest>};" + " <test:inputDocument> {INPUT}; " + " <test:status> {STATUS}" + " where label(STATUS) = \"APPROVED\"" + " using namespace " + " test = <!" + _testSchemaURL + ">"); int noNegCases = negativeCases.getRowCount(); for (int row = 0; row < noNegCases; row++) { String testName = negativeCases.getValue(row, 0).toString(); String inputFile = negativeCases.getValue(row, 1).toString(); _negativeParserTest(row, testName, inputFile); } } catch (MalformedQueryException e) { fail("malformed query: " + e.getMessage()); } catch (IOException e) { fail("io exception: " + e.getMessage()); } catch (AccessDeniedException e) { fail("Access denied: " + e.getMessage()); } catch (QueryEvaluationException e) { fail("Query evaluation error: " + e.getMessage()); } } protected void _positiveParserTest(int nodeId, String testName, String inputFile, String outputFile) { String begin = null; String end = null; String bNode = "parseposnode" + String.valueOf(nodeId); _parsedModel = new org.openrdf.sesame.sailimpl.memory.RdfRepository(); _expectedModel = new org.openrdf.sesame.sailimpl.memory.RdfRepository(); try { Map noParams = new HashMap(); _parsedModel.initialize(noParams); _expectedModel.initialize(noParams); } catch (SailInitializationException e) { fail("Unable to initialize models: " + e.getMessage()); } try { //System.out.println("Parsing file " + inputFile); URL inputURL = new URL(inputFile); InputStream inputStream = inputURL.openStream(); begin = new Date().toString(); _rdfXmlParser.setStatementHandler( new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { try { _parsedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _parsedModel.startTransaction(); _rdfXmlParser.parse(inputStream, inputFile); inputStream.close(); _parsedModel.commitTransaction(); URL outputURL = new URL(outputFile); inputStream = outputURL.openStream(); _nTriplesParser.setStatementHandler( new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { try { _expectedModel.addStatement(subj, pred, obj); } catch (SailUpdateException e) { fail("Unable to add statements to models: " + e.getMessage()); } } }); _expectedModel.startTransaction(); _nTriplesParser.parse(inputStream, inputFile); inputStream.close(); _expectedModel.commitTransaction(); end = new Date().toString(); if (SailUtil.modelsEqual(_parsedModel, _expectedModel)) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "PassingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } else { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } } catch (ClassCastException e) { // FIXME apparantly something went wrong in comparing models. _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FIXME", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } catch (StatementHandlerException e) { // FIXME apparantly something went wrong while adding the // statements to _parsedModel _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FIXME", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } catch (ParseException e) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } catch (IOException e) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "PositiveParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } } protected void _negativeParserTest(int nodeId, String testName, String inputFile) { String begin = null; String end = null; String bNode = "parsenegnode" + String.valueOf(nodeId); _parsedModel = new org.openrdf.sesame.sailimpl.memory.RdfRepository(); try { Map noParams = new HashMap(); _parsedModel.initialize(noParams); } catch (SailInitializationException e) { fail("Unable to initialize models: " + e.getMessage()); } try { //System.out.println("Parsing file " + inputFile); URL inputURL = new URL(inputFile); InputStream inputStream = inputURL.openStream(); begin = new Date().toString(); _rdfXmlParser.setStatementHandler( new StatementHandler() { public void handleStatement(Resource subj, URI pred, Value obj) { // do nothing } }); _rdfXmlParser.parse(inputStream, inputFile); inputStream.close(); end = new Date().toString(); _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "NegativeParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } catch (ParseException e) { // ParseException thrown, this is correct as // the inputFile is incorrect RDF //System.out.println("Catched a ParseException: " + e.getMessage()); end = new Date().toString(); _addLogStatement(bNode, RDF.TYPE, _resOntURL + "PassingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "NegativeParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); } catch (StatementHandlerException e) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "NegativeParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); fail("statement handler error: " + e.getMessage()); } catch (IOException e) { _addLogStatement(bNode, RDF.TYPE, _resOntURL + "FailingRun", 2, 1); _addLogStatement(bNode, _resOntURL + "test", testName, 2, 1); _addLogStatement(testName, RDF.TYPE, _testSchemaURL + "NegativeParserTest", 1, 1); _addLogStatement(bNode, _resOntURL + "system", "system", 2, 2); _addLogStatement(bNode, _resOntURL + "begins", begin, 2, 3); _addLogStatement(bNode, _resOntURL + "ends", end, 2, 3); fail("ioexception: " + e.getMessage()); } } /** * @param subjectType 1 = uri, 2 = bnode * @param objectType 1 = uri, 2 = bnode, 3 = literal */ private void _addLogStatement(String subject, String predicate, String object, int subjectType, int objectType) { Resource subj; if (subjectType == 1) { subj = new URIImpl(subject); } else { subj = new BNodeImpl(subject); } URI pred = new URIImpl(predicate); Value obj; if (objectType == 1) { obj = new URIImpl(object); } else if (objectType == 2) { obj = new BNodeImpl(object); } else { if (predicate.endsWith("ends") || predicate.endsWith("begins")) { obj = new LiteralImpl(object, new URIImpl("http://www.w3.org/2001/XMLSchema#dateTime")); } else { obj = new LiteralImpl(object); } } try { _logModel.startTransaction(); _logModel.addStatement(subj, pred, obj); _logModel.commitTransaction(); } catch (SailUpdateException e) { fail("couldn't log statement: " + e.getMessage()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -