/** * Tests the parser with all cases defined by the NQuads grammar. */ @Test public void testParserWithAllCases() throws IOException, RDFParseException, RDFHandlerException { TestParseLocationListener parseLocationListerner = new TestParseLocationListener(); // SpecificTestRDFHandler rdfHandler = new SpecificTestRDFHandler(); parser.setParseLocationListener(parseLocationListerner); parser.setRDFHandler(rdfHandler); BufferedReader br = new BufferedReader(new InputStreamReader( AbstractNQuadsParserUnitTest.class.getResourceAsStream("/testcases/nquads/test1.nq"))); parser.parse(br, "http://test.base.uri"); rdfHandler.assertHandler(6); parseLocationListerner.assertListener(9, 1); }
/** * Tests the correct support for literal escaping. */ @Test public void testLiteralEscapeManagement1() throws RDFHandlerException, IOException, RDFParseException { TestParseLocationListener parseLocationListener = new TestParseLocationListener(); TestRDFHandler rdfHandler = new TestRDFHandler(); parser.setParseLocationListener(parseLocationListener); parser.setRDFHandler(rdfHandler); final ByteArrayInputStream bais = new ByteArrayInputStream( "<http://a> <http://b> \"\\\\\" <http://c> .".getBytes()); parser.parse(bais, "http://base-uri"); rdfHandler.assertHandler(1); // parseLocationListener.assertListener(1, 40); // FIXME: Enable column numbers when parser supports them parseLocationListener.assertListener(1, 1); }
/** * Tests parser with real data. */ @Test public void testParserWithRealData() throws IOException, RDFParseException, RDFHandlerException { TestParseLocationListener parseLocationListener = new TestParseLocationListener(); TestRDFHandler rdfHandler = new TestRDFHandler(); parser.setParseLocationListener(parseLocationListener); parser.setRDFHandler(rdfHandler); parser.parse(AbstractNQuadsParserUnitTest.class.getResourceAsStream("/testcases/nquads/test2.nq"), "http://test.base.uri"); rdfHandler.assertHandler(400); parseLocationListener.assertListener(401, 1); }
/** * Tests the correct support for literal escaping. */ @Test public void testLiteralEscapeManagement2() throws RDFHandlerException, IOException, RDFParseException { TestParseLocationListener parseLocationListener = new TestParseLocationListener(); TestRDFHandler rdfHandler = new TestRDFHandler(); parser.setParseLocationListener(parseLocationListener); parser.setRDFHandler(rdfHandler); final ByteArrayInputStream bais = new ByteArrayInputStream( "<http://a> <http://b> \"Line text 1\\nLine text 2\" <http://c> .".getBytes()); parser.parse(bais, "http://base-uri"); rdfHandler.assertHandler(1); final Value object = rdfHandler.getStatements().iterator().next().getObject(); Assert.assertTrue(object instanceof Literal); final String literalContent = ((Literal)object).getLabel(); Assert.assertEquals("Line text 1\nLine text 2", literalContent); }
parser.setParseLocationListener(parseLocationListener); parser.setRDFHandler(rdfHandler);