package org.aksw.sparqlify.test; import java.util.Arrays; import java.util.Collection; import java.util.List; import org.aksw.sparqlify.core.test.TestBundle; import org.aksw.sparqlify.core.test.TestBundleReader; import org.apache.jena.atlas.iterator.Iter; import org.apache.jena.atlas.iterator.Transform; import org.apache.jena.query.QuerySolution; import org.apache.jena.query.ResultSet; import org.apache.jena.sparql.engine.binding.Binding; import org.apache.jena.sparql.engine.binding.BindingUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RunWith(Parameterized.class) public class R2rmlTest { /** * * TODO Make public in Jena ResultSetCompare */ public static Transform<QuerySolution, Binding> qs2b = new Transform<QuerySolution, Binding> () { @Override public Binding apply(QuerySolution item) { return BindingUtils.asBinding(item) ; } } ; /** * * TODO Make public in Jena ResultSetCompare */ public static List<Binding> convert(ResultSet rs) { return Iter.iter(rs).map(qs2b).toList() ; } private static final Logger logger = LoggerFactory.getLogger(R2rmlTest.class); //private Comparator<Resource> resourceComparator = new ResourceComparator(); //private PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); private String name; private Runnable task; public R2rmlTest(String name, Runnable task) { this.name = name; this.task = task; } // public TestCase getTask() { // return task; // } @Parameters(name = "Sparqlify R2RML Test {index}: {0}") public static Collection<Object[]> data() throws Exception { TestBundleReader testBundleReader = new TestBundleReader(); List<TestBundle> testBundles = testBundleReader.getTestBundles(); logger.debug(testBundles.size() + " test bundles detected."); List<TestCase> testCases = TestBundlerConverter.collectTestCases(testBundles); logger.debug(testCases.size() + " test cases derived."); for(int i = 0; i < testCases.size(); ++i) { TestCase testCase = testCases.get(i); logger.trace("Test Case #" + i + ": " + testCase); } Object data[][] = new Object[testCases.size()][2]; for(int i = 0; i < testCases.size(); ++i) { TestCase testCase = testCases.get(i); data[i][0] = testCase.getName(); data[i][1] = testCase; } Collection<Object[]> result = Arrays.asList(data); return result; } @Test public void run() throws Exception { task.run(); // QueryExecutionFactory qef = testBundle.getQueryExecutionFactory(); // Query query = testBundle.getQuery(); // // ResultSet rs = qef.createQueryExecution(query); // ResultSetCompare.equalsByValue(); //runBundle(testBundle); } }