/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.query.parser.sparql;
import java.net.URL;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.openrdf.query.BindingSet;
import org.openrdf.query.QueryLanguage;
import org.openrdf.query.TupleQueryResult;
import org.openrdf.repository.Repository;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.rio.RDFFormat;
import org.openrdf.sail.memory.MemoryStore;
public class ManifestTest extends TestCase {
static final Logger logger = LoggerFactory.getLogger(ManifestTest.class);
private static final boolean REMOTE = false;
public static final String MANIFEST_FILE;
static {
if (REMOTE) {
MANIFEST_FILE = "http://www.w3.org/2001/sw/DataAccess/tests/data-r2/manifest-evaluation.ttl";
}
else {
MANIFEST_FILE = ManifestTest.class.getResource("/testcases-dawg/data-r2/manifest-evaluation.ttl").toString();
}
}
public ManifestTest(String name) {
super(name);
}
public static TestSuite suite()
throws Exception
{
return suite(new SPARQLQueryTest.Factory());
}
public static TestSuite suite(SPARQLQueryTest.Factory factory)
throws Exception
{
TestSuite suite = new TestSuite();
Repository manifestRep = new SailRepository(new MemoryStore());
manifestRep.initialize();
RepositoryConnection con = manifestRep.getConnection();
con.add(new URL(MANIFEST_FILE), MANIFEST_FILE, RDFFormat.TURTLE);
String query = "SELECT DISTINCT manifestFile " + "FROM {x} rdf:first {manifestFile} "
+ "USING NAMESPACE " + " mf = <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#>, "
+ " qt = <http://www.w3.org/2001/sw/DataAccess/tests/test-query#>";
TupleQueryResult manifestResults = con.prepareTupleQuery(QueryLanguage.SERQL, query, MANIFEST_FILE).evaluate();
while (manifestResults.hasNext()) {
BindingSet bindingSet = manifestResults.next();
String manifestFile = bindingSet.getValue("manifestFile").toString();
suite.addTest(SPARQLQueryTest.suite(manifestFile, factory));
}
manifestResults.close();
con.close();
manifestRep.shutDown();
logger.info("Created aggregated test suite with " + suite.countTestCases() + " test cases.");
return suite;
}
}