diff --git a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractCoreModuleTestHelper.java b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractCoreModuleTestHelper.java
new file mode 100644
index 000000000..7712ae2ae
--- /dev/null
+++ b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractCoreModuleTestHelper.java
@@ -0,0 +1,26 @@
+package cz.cvut.spipes.modules;
+
+import cz.cvut.spipes.engine.PipelineFactory;
+import org.apache.jena.ontology.OntModel;
+
+/**
+ * This is helper class to write tests that load configuration of modules from ttl file
+ * that is organized in directory `test/resources/module/${moduleName}/`.
+ *
+ * See more information in {@link AbstractModuleTestHelper}.
+ */
+public abstract class AbstractCoreModuleTestHelper extends AbstractModuleTestHelper {
+
+ @Override
+ Module getSingleModule(OntModel configModel) {
+ return PipelineFactory.loadPipelines(configModel).get(0);
+ }
+
+ public Module getConfigRootModule() {
+ return (Module) super.getConfigRootModule();
+ }
+ public Module getRootModule(String fileName) {
+ return (Module) super.getRootModule(fileName);
+ }
+
+}
diff --git a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTest.java b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTest.java
index 7e26b9857..7d2e47d01 100644
--- a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTest.java
+++ b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTest.java
@@ -12,7 +12,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
-public class AbstractModuleTest extends AbstractModuleTestHelper {
+public class AbstractModuleTest extends AbstractCoreModuleTestHelper {
@Override
String getModuleName() {
diff --git a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java
deleted file mode 100644
index abb29f0e9..000000000
--- a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package cz.cvut.spipes.modules;
-
-import cz.cvut.spipes.engine.PipelineFactory;
-import cz.cvut.spipes.test.JenaTestUtils;
-import org.apache.jena.ontology.OntModel;
-import org.apache.jena.ontology.OntModelSpec;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.rdf.model.ModelFactory;
-import org.apache.jena.util.FileUtils;
-
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-public abstract class AbstractModuleTestHelper {
-
- private static final String MODULE_DIR_NAME = "module";
- private static final String CONFIG_FILE_NAME = "config.ttl";
-
-
- /**
- * @return Name of the directory within test resources/modules folder.
- */
- abstract String getModuleName();
-
- public OntModel getConfigOntModel() {
- JenaTestUtils.mapLocalSPipesDefinitionFiles();
- return getOntModel(CONFIG_FILE_NAME);
- }
-
- public OntModel getOntModel(String fileName) {
- OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
-
- // set external context
- //OntDocumentManager dm = OntDocumentManager.getInstance();
- //dm.setFileManager( FileManager.get() );
- //LocationMapper lm= FileManager.get().getLocationMapper();
- //dm.loadImports(ontModel);
-
- JenaTestUtils.mapLocalSPipesDefinitionFiles();
-
- // load config
- ontModel.read(
- getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
-
- return ontModel;
- }
-
- public Model getModel(String fileName) {
- Model model = ModelFactory.createDefaultModel();
-
- model.read(
- getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
-
- return model;
- }
-
-
- public Module getConfigRootModule() {
- return getRootModule(CONFIG_FILE_NAME);
- }
-
- public Module getRootModule(String fileName) {
- OntModel configModel = getOntModel(fileName);
-
- OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
-
- ontModel.read(
- getClass().getResourceAsStream(getConfigFilePath()), null, FileUtils.langTurtle);
-
- return PipelineFactory.loadPipelines(configModel).get(0);
- }
-
- public Path getFilePath(String fileName) throws URISyntaxException {
- return Paths.get(getClass().getResource(getRelativeFilePath(fileName)).toURI());
- }
-
- private String getRelativeFilePath(String fileName) {
- return "/" + MODULE_DIR_NAME + "/" + getModuleName() + "/" + fileName;
- }
-
- private String getConfigFilePath() {
- return "/" + MODULE_DIR_NAME + "/" + getModuleName() + "/" + CONFIG_FILE_NAME;
- }
-}
diff --git a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/ApplyConstructModuleTest.java b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/ApplyConstructModuleTest.java
index 2f2cf9a85..a9dddbd0e 100644
--- a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/ApplyConstructModuleTest.java
+++ b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/ApplyConstructModuleTest.java
@@ -13,7 +13,7 @@
import org.junit.jupiter.api.Test;
-public class ApplyConstructModuleTest extends AbstractModuleTestHelper {
+public class ApplyConstructModuleTest extends AbstractCoreModuleTestHelper {
@BeforeEach
public void setUp() {
diff --git a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/BindWithConstantModuleTest.java b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/BindWithConstantModuleTest.java
index 860d70f21..6ca745660 100644
--- a/s-pipes-core/src/test/java/cz/cvut/spipes/modules/BindWithConstantModuleTest.java
+++ b/s-pipes-core/src/test/java/cz/cvut/spipes/modules/BindWithConstantModuleTest.java
@@ -15,7 +15,7 @@
import static org.junit.jupiter.api.Assertions.assertFalse;
import org.junit.jupiter.api.Test;
-public class BindWithConstantModuleTest extends AbstractModuleTestHelper {
+public class BindWithConstantModuleTest extends AbstractCoreModuleTestHelper {
@Override
public String getModuleName() {
diff --git a/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java b/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java
deleted file mode 100644
index 19bc8ca55..000000000
--- a/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package cz.cvut.spipes.modules;
-
-import cz.cvut.spipes.engine.PipelineFactory;
-import cz.cvut.spipes.test.JenaTestUtils;
-import org.apache.jena.ontology.OntModel;
-import org.apache.jena.ontology.OntModelSpec;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.rdf.model.ModelFactory;
-import org.apache.jena.util.FileUtils;
-
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-public abstract class AbstractModuleTestHelper {
-
- private static final String MODULE_DIR_NAME = "module";
- private static final String CONFIG_FILE_NAME = "config.ttl";
-
- /**
- * @return Name of the directory within test resources/modules folder.
- */
- abstract String getModuleName();
-
- public OntModel getConfigOntModel() {
- JenaTestUtils.mapLocalSPipesDefinitionFiles();
- return getOntModel(CONFIG_FILE_NAME);
- }
-
- public OntModel getOntModel(String fileName) {
- OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
-
- // load config
- ontModel.read(
- getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
-
- return ontModel;
- }
-
- public Model getModel(String fileName) {
- Model model = ModelFactory.createDefaultModel();
-
- model.read(
- getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
-
- return model;
- }
-
-
- public Module getConfigRootModule() {
- return getRootModule(CONFIG_FILE_NAME);
- }
-
- public Module getRootModule(String fileName) {
- OntModel configModel = getOntModel(fileName);
-
- OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
-
- ontModel.read(
- getClass().getResourceAsStream(getConfigFilePath()), null, FileUtils.langTurtle);
-
- return PipelineFactory.loadPipelines(configModel).get(0);
- }
-
- public Path getFilePath(String fileName) throws URISyntaxException {
- return Paths.get(getClass().getResource(getRelativeFilePath(fileName)).toURI());
- }
-
- private String getRelativeFilePath(String fileName) {
- return "/" + MODULE_DIR_NAME + "/" + getModuleName() + "/" + fileName;
- }
-
- private String getConfigFilePath() {
- return "/" + MODULE_DIR_NAME + "/" + getModuleName() + "/" + CONFIG_FILE_NAME;
- }
-}
diff --git a/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/AbstractTabularModuleTestHelper.java b/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/AbstractTabularModuleTestHelper.java
new file mode 100644
index 000000000..7c6a34330
--- /dev/null
+++ b/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/AbstractTabularModuleTestHelper.java
@@ -0,0 +1,26 @@
+package cz.cvut.spipes.modules;
+
+import cz.cvut.spipes.engine.PipelineFactory;
+import org.apache.jena.ontology.OntModel;
+
+/**
+ * This is helper class to write tests that load configuration of modules from ttl file
+ * that is organized in directory `test/resources/module/${moduleName}/`.
+ *
+ * See more information in {@link AbstractModuleTestHelper}.
+ */
+public abstract class AbstractTabularModuleTestHelper extends AbstractModuleTestHelper {
+
+ @Override
+ Module getSingleModule(OntModel configModel) {
+ return PipelineFactory.loadPipelines(configModel).get(0);
+ }
+
+ public Module getConfigRootModule() {
+ return (Module) super.getConfigRootModule();
+ }
+ public Module getRootModule(String fileName) {
+ return (Module) super.getRootModule(fileName);
+ }
+
+}
diff --git a/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/TabularModuleTest.java b/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/TabularModuleTest.java
index cc59b2b8f..1f7e80d1e 100644
--- a/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/TabularModuleTest.java
+++ b/s-pipes-modules/module-tabular/src/test/java/cz/cvut/spipes/modules/TabularModuleTest.java
@@ -30,7 +30,7 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
- class TabularModuleTest extends AbstractModuleTestHelper {
+ class TabularModuleTest extends AbstractTabularModuleTestHelper {
private TabularModule module;
private final String DATA_PREFIX = "http://onto.fel.cvut.cz/data/";
diff --git a/s-pipes-test/src/main/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java b/s-pipes-test/src/main/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java
new file mode 100644
index 000000000..e610b16ac
--- /dev/null
+++ b/s-pipes-test/src/main/java/cz/cvut/spipes/modules/AbstractModuleTestHelper.java
@@ -0,0 +1,144 @@
+package cz.cvut.spipes.modules;
+
+import cz.cvut.spipes.test.JenaTestUtils;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.util.FileUtils;
+
+import java.net.URISyntaxException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+/**
+ * This is helper class to write tests that load configuration of modules from ttl file
+ * that is organized in directory `test/resources/module/${moduleName}/`.
+ *
+ * The `${moduleName}` is taken from abstract method getModuleName()
.
+ * The configuration file should be located at `test/resources/module/${moduleName}/${fileName}`
+ * and to load the module one can call method getRootModule(fileName)
.
+ *
+ * ${fileName} (e.g. config.ttl) must contain only one module and must include declaration of the module type.
+ * Example `./test/module/apply-construct/config.ttl`:
+ *
+ *
+ *
+ * @prefix apply-construct: .
+ * @prefix owl: .
+ * @prefix sp: .
+ * @prefix sml: .
+ *
+ * # Declare module type (alternatively you can import it using owl:imports)
+ * sml:ApplyConstruct a sm:Module .
+ *
+ * # configure the module
+ * apply-construct:create-sample-triples
+ * a sml:ApplyConstruct ;
+ * sml:constructQuery [
+ * a sp:Construct ;
+ * sp:text """CONSTRUCT {
+ * rdfs:label "label 1" .
+ * rdfs:label "label 2" .
+ * }
+ * WHERE {
+ * }""" ;
+ * ] ;
+ * .
+ *
+ *
+ * a owl:Ontology ;
+ * owl:imports ;
+ * .
+ *
+ *
+ *
+ */
+public abstract class AbstractModuleTestHelper {
+
+ private static final String MODULE_DIR_NAME = "module";
+ private static final String CONFIG_FILE_NAME = "config.ttl";
+
+
+ /**
+ * @return Name of the directory within test resources/modules folder.
+ */
+ abstract String getModuleName();
+
+ /**
+ * This method should load single SPipes Module from provided ontology.
+ * @return First module in ontology
+ */
+ abstract Object getSingleModule(OntModel configModel);
+
+ public OntModel getConfigOntModel() {
+ return getOntModel(CONFIG_FILE_NAME);
+ }
+
+ public OntModel getOntModel(String fileName) {
+ OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
+
+ // set external context
+ //OntDocumentManager dm = OntDocumentManager.getInstance();
+ //dm.setFileManager( FileManager.get() );
+ //LocationMapper lm= FileManager.get().getLocationMapper();
+ //dm.loadImports(ontModel);
+
+ JenaTestUtils.mapLocalSPipesDefinitionFiles();
+
+ // load config
+ ontModel.read(
+ getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
+
+ return ontModel;
+ }
+
+ public Model getModel(String fileName) {
+ Model model = ModelFactory.createDefaultModel();
+
+ model.read(
+ getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
+
+ return model;
+ }
+
+ /**
+ * Returns module from a default configuration file located are `test/resources/module/${moduleName}/config.ttl`,
+ * where ${moduleName} is returned by getModuleName()
.
+ *
+ * @return Returns loaded module.
+ */
+ public Object getConfigRootModule() {
+ return getRootModule(CONFIG_FILE_NAME);
+ }
+
+ /**
+ * Returns module from a provided configuration file.
+ *
+ * @param fileName of ttl file (e.g. config.ttl) to load module configuration.
+ * It should be located at test/resources/module/${fileName}
.
+ * @return Returns loaded module from the given file.
+ */
+ public Object getRootModule(String fileName) {
+ OntModel configModel = getOntModel(fileName);
+
+ OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
+
+ ontModel.read(
+ getClass().getResourceAsStream(getRelativeFilePath(fileName)), null, FileUtils.langTurtle);
+
+ return getSingleModule(configModel);
+ }
+
+ public Path getFilePath(String fileName) throws URISyntaxException {
+ return Paths.get(getClass().getResource(getRelativeFilePath(fileName)).toURI());
+ }
+
+ private String getRelativeFilePath(String fileName) {
+ return "/" + MODULE_DIR_NAME + "/" + getModuleName() + "/" + fileName;
+ }
+
+ private String getConfigFilePath() {
+ return getRelativeFilePath(CONFIG_FILE_NAME);
+ }
+}