package com.bigdata.rdf.rio;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.io.InputStream;
import org.junit.Test;
import org.openrdf.model.BNode;
import org.openrdf.model.Statement;
import org.openrdf.rio.RDFHandlerException;
import org.openrdf.rio.RDFParseException;
import org.openrdf.rio.RDFParser;
import org.openrdf.rio.helpers.RDFHandlerBase;
import com.bigdata.rdf.rio.ntriples.BigdataNTriplesParser;
import com.bigdata.rdf.rio.turtle.BigdataTurtleParser;
/**
* Test suite for standalone usage of Bigdata RDF Parsers.
* See also https://jira.blazegraph.com/browse/BLZG-1322
*/
public class TestStandaloneRDRParsers {
boolean bNodeFound;
@Test
public void testStandaloneBigdataTurtleParser() throws RDFParseException, RDFHandlerException, IOException {
testStandaloneParser(new BigdataTurtleParser(), "com/bigdata/rdf/rio/rdr_test.ttlx");
}
@Test
public void testStandaloneBigdataNTriplesParser() throws RDFParseException, RDFHandlerException, IOException {
testStandaloneParser(new BigdataNTriplesParser(), "com/bigdata/rdf/rio/rdr_test.ntx");
}
private void testStandaloneParser(RDFParser parser, String resourceName) throws IOException,
RDFParseException, RDFHandlerException {
bNodeFound = false;
parser.setRDFHandler(new RDFHandlerBase(){
@Override
public void handleStatement(Statement st)
throws RDFHandlerException {
if (st.getSubject() instanceof BNode) {
bNodeFound = true;
}
super.handleStatement(st);
}
});
try (InputStream is = getClass().getClassLoader().getResourceAsStream(resourceName)) {
parser.parse(is, "");
}
assertTrue(bNodeFound);
}
}