From d42b10336bdd015a4024cc99840c4ec05d6634d5 Mon Sep 17 00:00:00 2001 From: Luigi Asprino Date: Mon, 26 Aug 2024 17:17:13 +0200 Subject: [PATCH] #331 Add test --- .../sparqlanything/cli/SPARQLAnything.java | 2 +- .../sparqlanything/cli/Issue331Test.java | 54 +++++++++++++++++++ .../sparqlanything/model/IRIArgument.java | 2 +- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 sparql-anything-cli/src/test/java/io/github/sparqlanything/cli/Issue331Test.java diff --git a/sparql-anything-cli/src/main/java/io/github/sparqlanything/cli/SPARQLAnything.java b/sparql-anything-cli/src/main/java/io/github/sparqlanything/cli/SPARQLAnything.java index e79b5671..184d0743 100644 --- a/sparql-anything-cli/src/main/java/io/github/sparqlanything/cli/SPARQLAnything.java +++ b/sparql-anything-cli/src/main/java/io/github/sparqlanything/cli/SPARQLAnything.java @@ -65,11 +65,11 @@ public class SPARQLAnything { // TODO This should be moved to the engine module private static void initSPARQLAnythingEngine() { + JenaSystem.init(); // Register the JSON-LD parser factory for extension .json ReaderRIOTFactory parserFactoryJsonLD = new RiotUtils.ReaderRIOTFactoryJSONLD(); RDFParserRegistry.registerLangTriples(RiotUtils.JSON, parserFactoryJsonLD); // Setup FX executor - JenaSystem.init(); QC.setFactory(ARQ.getContext(), FacadeX.ExecutorFactory); } diff --git a/sparql-anything-cli/src/test/java/io/github/sparqlanything/cli/Issue331Test.java b/sparql-anything-cli/src/test/java/io/github/sparqlanything/cli/Issue331Test.java new file mode 100644 index 00000000..aaf9528c --- /dev/null +++ b/sparql-anything-cli/src/test/java/io/github/sparqlanything/cli/Issue331Test.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2024 SPARQL Anything Contributors @ http://github.com/sparql-anything + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.sparqlanything.cli; + +import io.github.sparqlanything.model.IRIArgument; +import org.apache.jena.sys.JenaSystem; +import org.junit.Assert; +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.InputStream; +import java.util.Objects; + +public class Issue331Test { + + @Test + public void test() throws Exception { + JenaSystem.init(); + InputStream fakeIn = new ByteArrayInputStream("abc".getBytes()); + System.setIn(fakeIn); + + String dir = Objects.requireNonNull(getClass().getClassLoader().getResource("")).getFile(); + String f = dir.concat("out.ttl"); + String f2 = dir.concat("out-1.ttl"); + System.out.println(f); + File fileOut = new File(f); + File fileOut2 = new File(f2); + + if(fileOut.exists()){ + fileOut.delete(); + } + + String q = "CONSTRUCT {?s ?p ?o} WHERE { SERVICE { ?s ?p ?o } }"; + SPARQLAnything.callMain(new String[]{"-q", q,"-f", "ttl", "-o", f, "-c", IRIArgument.READ_FROM_STD_IN.toString().concat("=true")}); + + Assert.assertTrue(fileOut.exists()); + Assert.assertFalse(fileOut2.exists()); + } +} diff --git a/sparql-anything-model/src/main/java/io/github/sparqlanything/model/IRIArgument.java b/sparql-anything-model/src/main/java/io/github/sparqlanything/model/IRIArgument.java index 4875c500..36b279e1 100644 --- a/sparql-anything-model/src/main/java/io/github/sparqlanything/model/IRIArgument.java +++ b/sparql-anything-model/src/main/java/io/github/sparqlanything/model/IRIArgument.java @@ -40,7 +40,7 @@ public class IRIArgument { public static final IRIArgument ANNOTATE_TRIPLES_WITH_SLOT_KEYS = new IRIArgument("annotate-triples-with-slot-keys", "false"); public static final IRIArgument GENERATE_PREDICATE_LABELS = new IRIArgument("generate-predicate-labels", "false"); - public static final IRIArgument READ_FROM_STD_IN = new IRIArgument("read-from-std-in", "false"); + public static final IRIArgument READ_FROM_STD_IN = new IRIArgument(" ", "false"); private final String name; private final String defaultValue;