diff --git a/sparql-anything-it/src/test/java/io/github/sparqlanything/it/IssuesTest.java b/sparql-anything-it/src/test/java/io/github/sparqlanything/it/IssuesTest.java index 3c443cef..1a985962 100644 --- a/sparql-anything-it/src/test/java/io/github/sparqlanything/it/IssuesTest.java +++ b/sparql-anything-it/src/test/java/io/github/sparqlanything/it/IssuesTest.java @@ -65,12 +65,7 @@ public void testIssue280() throws URISyntaxException { boolean tdbFolderCreated = TDBfile.mkdirs(); log.trace("Has TDB folder been deleted? {}", tdbFolderCreated); log.debug("TDB temp location: {}", TDBLocation); - Query qs = QueryFactory.create( - "PREFIX fx: " + - "PREFIX xyz: " + - "SELECT * WHERE { " + - "SERVICE { " + - " ?s xyz:name ?o } }"); + Query qs = QueryFactory.create("PREFIX fx: " + "PREFIX xyz: " + "SELECT * WHERE { " + "SERVICE { " + " ?s xyz:name ?o } }"); // System.out.println(location); // System.out.println(qs.toString(Syntax.defaultSyntax)); @@ -88,9 +83,7 @@ public void testIssue280() throws URISyntaxException { assertTrue(results.contains("Cougar Town")); - qs = QueryFactory.create( - "PREFIX fx: PREFIX xyz: SELECT * WHERE { SERVICE { fx:properties fx:location \"" + location + "\" ; fx:ondisk \"" + TDBLocation + "\" . " + - " ?s xyz:name ?o } }"); + qs = QueryFactory.create("PREFIX fx: PREFIX xyz: SELECT * WHERE { SERVICE { fx:properties fx:location \"" + location + "\" ; fx:ondisk \"" + TDBLocation + "\" . " + " ?s xyz:name ?o } }"); rs = QueryExecutionFactory.create(qs, ds).execSelect(); @@ -134,23 +127,7 @@ public void testIssue284_2() throws URISyntaxException { // System.out.println(ResultSetFormatter.asText(rs)); - Query qs = QueryFactory.create("PREFIX fx: \n" + - "PREFIX xyz: \n" + - "base \n" + - "\n" + - "CONSTRUCT\n" + - " {\n" + - " ?subject0 ?0 .\n" + - " }\n" + - "WHERE\n" + - " {\n" + - " SERVICE \n" + - " {\n" + - " \t?s0 xyz:students/fx:anySlot ?iterator0 . \n" + - " ?iterator0 xyz:ID ?0;\n" + - " bind(fx:entity(\"http://example.com/\", ?0) as ?subject0)\n" + - " }\n" + - " }"); + Query qs = QueryFactory.create("PREFIX fx: \n" + "PREFIX xyz: \n" + "base \n" + "\n" + "CONSTRUCT\n" + " {\n" + " ?subject0 ?0 .\n" + " }\n" + "WHERE\n" + " {\n" + " SERVICE \n" + " {\n" + " \t?s0 xyz:students/fx:anySlot ?iterator0 . \n" + " ?iterator0 xyz:ID ?0;\n" + " bind(fx:entity(\"http://example.com/\", ?0) as ?subject0)\n" + " }\n" + " }"); // System.out.println(qs.toString()); @@ -184,9 +161,7 @@ public void testIssue356() throws URISyntaxException, IOException { public void testIssue356CLI() throws Exception { // System.setProperty("org.slf4j.simpleLogger.log.io.github.sparqlanything", "Trace"); String query = IOUtils.toString(Objects.requireNonNull(getClass().getClassLoader().getResource("issues/issue356.sparql")).toURI(), StandardCharsets.UTF_8); - String output = SPARQLAnything.callMain(new String[]{ - "-q", query - }); + String output = SPARQLAnything.callMain(new String[]{"-q", query}); Assert.assertTrue(output.contains("http://www.w3.org/1999/02/22-rdf-syntax-ns#type,http://sparql.xyz/facade-x/ns/root")); } @@ -508,7 +483,7 @@ public void testIssue280_2() throws URISyntaxException { boolean hasTDBFolderCreated = TDBfile.mkdirs(); //log.trace("Has TDB Folder been created? {}, {}", hasTDBFolderCreated, TDBfile.exists()); - String queryString = "PREFIX fx: PREFIX xyz: SELECT * WHERE { SERVICE { fx:properties fx:location \""+location+"\" ; fx:ondisk \""+TDBLocation+"\" . ?s xyz:name ?o } }"; + String queryString = "PREFIX fx: PREFIX xyz: SELECT * WHERE { SERVICE { fx:properties fx:location \"" + location + "\" ; fx:ondisk \"" + TDBLocation + "\" . ?s xyz:name ?o } }"; //log.debug("TDB temp location: {}", TDBLocation); //log.debug("Query string\n{}", queryString); Query qs = QueryFactory.create(queryString); @@ -663,7 +638,7 @@ public void testIssue295() throws URISyntaxException, IOException { Query query; String TDBLocation = "tmp/testIssue295"; File tmpTBDFolder = new File(TDBLocation); - if(tmpTBDFolder.exists()){ + if (tmpTBDFolder.exists()) { FileUtils.deleteDirectory(tmpTBDFolder); } String queryStr = IOUtils.toString(Objects.requireNonNull(getClass().getClassLoader().getResource("issues/issue295.sparql")).toURI(), StandardCharsets.UTF_8); @@ -685,8 +660,8 @@ public void testIssue295() throws URISyntaxException, IOException { assertEquals(expectedNames, actualNames); try { FileUtils.deleteDirectory(tmpTBDFolder); - }catch(IOException e){ - log.warn("Unable to delete {}, delete it once the program terminates.",tmpTBDFolder.getAbsolutePath()); + } catch (IOException e) { + log.warn("Unable to delete {}, delete it once the program terminates.", tmpTBDFolder.getAbsolutePath()); } } @@ -803,7 +778,7 @@ public void testIssue352() throws URISyntaxException, IOException { query = QueryFactory.create(queryStr); qExec = QueryExecutionFactory.create(query, ds); - rs = qExec.execSelect(); + rs = qExec.execSelect(); assertTrue(rs.hasNext()); qs = rs.next(); @@ -855,7 +830,7 @@ public void testIssue386() throws URISyntaxException, IOException { QueryExecution qExec = QueryExecutionFactory.create(query, ds); ResultSet rs = qExec.execSelect(); assertTrue(rs.hasNext()); - assertEquals("http://example.org/document",rs.next().get("root").asResource().getURI()); + assertEquals("http://example.org/document", rs.next().get("root").asResource().getURI()); assertFalse(rs.hasNext()); } @@ -905,7 +880,7 @@ public void testIssue421() throws URISyntaxException, IOException { // System.out.println(ResultSetFormatter.asText(qExec1.execSelect())); Set result = new HashSet<>(); ResultSet rs = qExec1.execSelect(); - while (rs.hasNext()){ + while (rs.hasNext()) { result.add(rs.next().get("a").asLiteral().toString()); } assertEquals(Sets.newHashSet("abc", "cde"), result); @@ -927,7 +902,7 @@ public void testIssue330() throws URISyntaxException, IOException { // System.out.println(ResultSetFormatter.asText(qExec1.execSelect())); Set result = new HashSet<>(); ResultSet rs = qExec1.execSelect(); - while (rs.hasNext()){ + while (rs.hasNext()) { result.add(rs.next().get("a").asLiteral().toString()); } assertEquals(Sets.newHashSet("abc", "cde"), result); @@ -953,4 +928,42 @@ public void testIssue330() throws URISyntaxException, IOException { } + @Ignore + @Test + public void testIssue478() throws URISyntaxException, IOException { + executeTest("issues/issue478.sparql", "issues/issue 478.xls", false, false, true); + executeTest("issues/issue478-2.sparql", "issues/issue 478.xls", false, false, true); + } + + private QueryExecution executeTest(String queryPath, String resourcePath, boolean printQueryString, boolean printFormattedQuery, boolean printResults) throws IOException, URISyntaxException { + Dataset ds = DatasetFactory.createGeneral(); + QC.setFactory(ARQ.getContext(), FacadeX.ExecutorFactory); + Query query; + String queryStr = IOUtils.toString(Objects.requireNonNull(getClass().getClassLoader().getResource(queryPath)).toURI(), StandardCharsets.UTF_8); + String loc = Paths.get(Objects.requireNonNull(getClass().getClassLoader().getResource(resourcePath)).toURI()).toUri().toString(); + queryStr = queryStr.replace("%%%LOCATION%%%", loc); + if (printQueryString) { + System.out.println(queryStr); + } + query = QueryFactory.create(queryStr); + + QueryExecution qExec1 = QueryExecutionFactory.create(query, ds); + if (printResults) { + if (query.isSelectType()) { + ResultSet rs = qExec1.execSelect(); + Assert.assertTrue(rs.hasNext()); + System.out.println(ResultSetFormatter.asText(rs)); + } else { + qExec1.execConstruct().write(System.out, "TTL"); + } + } + if (printFormattedQuery) { + System.out.println(query.toString(Syntax.defaultSyntax)); + } + + return QueryExecutionFactory.create(query, ds); + + } + + } diff --git a/sparql-anything-it/src/test/resources/issues/issue 478.xls b/sparql-anything-it/src/test/resources/issues/issue 478.xls new file mode 100644 index 00000000..33ba85ca Binary files /dev/null and b/sparql-anything-it/src/test/resources/issues/issue 478.xls differ diff --git a/sparql-anything-it/src/test/resources/issues/issue478-2.sparql b/sparql-anything-it/src/test/resources/issues/issue478-2.sparql new file mode 100644 index 00000000..dccb42dc --- /dev/null +++ b/sparql-anything-it/src/test/resources/issues/issue478-2.sparql @@ -0,0 +1,13 @@ +PREFIX fx: +PREFIX xyz: +PREFIX rdf: +PREFIX rdfs: +SELECT * WHERE { + SERVICE { + fx:properties fx:location "%%%LOCATION%%%" . + GRAPH ?g { + ?s ?p ?o + } + FILTER (STR(?g) = "file:///Users/lgu/workspace/SPARQLAnything/sparql.anything/sparql-anything-it/target/test-classes/issues/issue%20478.xls#Sheet1") + } +} \ No newline at end of file diff --git a/sparql-anything-it/src/test/resources/issues/issue478.sparql b/sparql-anything-it/src/test/resources/issues/issue478.sparql new file mode 100644 index 00000000..621123b2 --- /dev/null +++ b/sparql-anything-it/src/test/resources/issues/issue478.sparql @@ -0,0 +1,12 @@ +PREFIX fx: +PREFIX xyz: +PREFIX rdf: +PREFIX rdfs: +SELECT * WHERE { + SERVICE { + fx:properties fx:location "%%%LOCATION%%%" . + GRAPH { + ?s ?p ?o + } + } +} \ No newline at end of file