]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/ScriptTestBase.java
Automatic execution of SCL tests in Maven
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / ScriptTestBase.java
diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/ScriptTestBase.java b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/ScriptTestBase.java
new file mode 100644 (file)
index 0000000..9e4401d
--- /dev/null
@@ -0,0 +1,45 @@
+package org.simantics.scl.compiler.tests;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+import org.junit.Before;
+import org.simantics.scl.compiler.commands.CommandSession;
+import org.simantics.scl.compiler.commands.TestScriptExecutor;
+import org.simantics.scl.compiler.module.repository.ModuleRepository;
+import org.simantics.scl.compiler.source.repository.CompositeModuleSourceRepository;
+import org.simantics.scl.compiler.source.repository.SourceRepositories;
+
+public class ScriptTestBase {
+    
+    private final String path;
+    
+    ModuleRepository moduleRepository;
+    
+    public ScriptTestBase(String path) {
+        this.path = path;
+    }
+    
+    @Before
+    public void initialize() throws Exception {
+        moduleRepository = new ModuleRepository(
+                new CompositeModuleSourceRepository(
+                        SourceRepositories.BUILTIN_SOURCE_REPOSITORY,
+                        SourceRepositories.PRELUDE_SOURCE_REPOSITORY
+                        ));
+    }
+    
+    protected void test() throws Exception {
+        String testScriptName = Thread.currentThread().getStackTrace()[2].getMethodName();
+        String testPath = "scripts/" + testScriptName + ".sts";
+
+        CommandSession session = new CommandSession(moduleRepository, null);
+        new TestScriptExecutor(session, 
+                new BufferedReader(
+                        new InputStreamReader(getClass().getResourceAsStream(testPath), Charset.forName("UTF-8"))),
+                        null)
+        .execute();
+    }
+    
+}