]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/utils/ModelledSTSTest.java
Simantics integration STS
[simantics/platform.git] / bundles / org.simantics.tests.modelled / src / org / simantics / tests / modelled / utils / ModelledSTSTest.java
index 78964403f95057464a929d8ea81e0622dea54a8b..492f8d11aa31380a0a50e15862d56b5f4a21475c 100644 (file)
@@ -28,18 +28,20 @@ public class ModelledSTSTest {
     private final String code;
     private final int priority;
     private final boolean ignored;
     private final String code;
     private final int priority;
     private final boolean ignored;
+    private Set<String> imports;
     private Set<String> dependencies;
     private Set<String> unresolvedDependencies;
     private Set<String> dependencies;
     private Set<String> unresolvedDependencies;
-    
+
     private CombinedCoverage coverage;
     private Map<String, String> variables;
 
     private CombinedCoverage coverage;
     private Map<String, String> variables;
 
-    ModelledSTSTest(String name, String parentName, String code, int priority, boolean ignored, Set<String> dependencies, Map<String, String> variables) {
+    ModelledSTSTest(String name, String parentName, String code, int priority, boolean ignored, Set<String> imports, Set<String> dependencies, Map<String, String> variables) {
         this.name = name;
         this.parentName = parentName;
         this.code = code;
         this.priority = priority;
         this.ignored = ignored;
         this.name = name;
         this.parentName = parentName;
         this.code = code;
         this.priority = priority;
         this.ignored = ignored;
+        this.imports = imports;
         this.dependencies = dependencies;
         this.unresolvedDependencies = new HashSet<>(dependencies);
         this.variables = variables;
         this.dependencies = dependencies;
         this.unresolvedDependencies = new HashSet<>(dependencies);
         this.variables = variables;
@@ -97,14 +99,14 @@ public class ModelledSTSTest {
             return value;
         }
     }
             return value;
         }
     }
-    
+
     public List<CommandSessionVariable> run(List<CommandSessionVariable> vars) throws IOException {
 //        ModuleRepository repo = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY);
        ModuleRepository repo = SCLOsgi.MODULE_REPOSITORY;
         CommandSession session = null;
         try {
 //            repo.setAdvisor(new ModuleCompilationOptionsAdvisor() {
     public List<CommandSessionVariable> run(List<CommandSessionVariable> vars) throws IOException {
 //        ModuleRepository repo = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY);
        ModuleRepository repo = SCLOsgi.MODULE_REPOSITORY;
         CommandSession session = null;
         try {
 //            repo.setAdvisor(new ModuleCompilationOptionsAdvisor() {
-//                
+//
 //                @Override
 //                public ModuleCompilationOptions getOptions(String moduleName) {
 //                    // TODO: default to false
 //                @Override
 //                public ModuleCompilationOptions getOptions(String moduleName) {
 //                    // TODO: default to false
@@ -119,24 +121,28 @@ public class ModelledSTSTest {
 //                    return new ModuleCompilationOptions(coverage);
     //                    }
 //            });
 //                    return new ModuleCompilationOptions(coverage);
     //                    }
 //            });
-            
+
             SCLReportingHandler handler = (SCLReportingHandler) SCLContext.getCurrent().get(SCLReportingHandler.REPORTING_HANDLER);
             session = new CommandSession(repo, handler);
             SCLReportingHandler handler = (SCLReportingHandler) SCLContext.getCurrent().get(SCLReportingHandler.REPORTING_HANDLER);
             session = new CommandSession(repo, handler);
-            
+
+            for(String imp : imports) {
+                session.execute("import \"" + imp + "\"");
+            }
+
             for (CommandSessionVariable var : vars)
                 session.setVariable(var.getName(), var.getType(), var.getValue());
             for (CommandSessionVariable var : vars)
                 session.setVariable(var.getName(), var.getType(), var.getValue());
-            
+
             for (Map.Entry<String, String> entry : variables.entrySet())
                 session.setVariable(entry.getKey(), Types.STRING, entry.getValue());
             for (Map.Entry<String, String> entry : variables.entrySet())
                 session.setVariable(entry.getKey(), Types.STRING, entry.getValue());
-            
-            new TestScriptExecutor(session, new BufferedReader(new StringReader(code)), handler, true).execute();
+
+            new TestScriptExecutor(session, new BufferedReader(new StringReader(code)), handler, false).execute();
             STSSuiteTestCollector.setTestCoverage(this, session);
             STSSuiteTestCollector.setTestCoverage(this, session);
-            
+
             // Return variables from this session
             List<CommandSessionVariable> result = new ArrayList<>();
             for (String var : session.getVariables())
                 result.add(new CommandSessionVariable(var, session.getVariableType(var), session.getVariableValue(var)));
             // Return variables from this session
             List<CommandSessionVariable> result = new ArrayList<>();
             for (String var : session.getVariables())
                 result.add(new CommandSessionVariable(var, session.getVariableType(var), session.getVariableValue(var)));
-            
+
             return result;
         } finally {
             // remember to flush this repository
             return result;
         } finally {
             // remember to flush this repository
@@ -149,11 +155,11 @@ public class ModelledSTSTest {
     public Set<String> getDependencies() {
         return dependencies;
     }
     public Set<String> getDependencies() {
         return dependencies;
     }
-    
+
     public Set<String> getUnresolvedDependencies() {
         return unresolvedDependencies;
     }
     public Set<String> getUnresolvedDependencies() {
         return unresolvedDependencies;
     }
-    
+
     public boolean resolveDependency(String testDep) {
         return unresolvedDependencies.remove(testDep);
     }
     public boolean resolveDependency(String testDep) {
         return unresolvedDependencies.remove(testDep);
     }
@@ -164,6 +170,7 @@ public class ModelledSTSTest {
         int result = 1;
         result = prime * result + ((code == null) ? 0 : code.hashCode());
         result = prime * result + ((coverage == null) ? 0 : coverage.hashCode());
         int result = 1;
         result = prime * result + ((code == null) ? 0 : code.hashCode());
         result = prime * result + ((coverage == null) ? 0 : coverage.hashCode());
+        result = prime * result + ((imports == null) ? 0 : imports.hashCode());
         result = prime * result + ((dependencies == null) ? 0 : dependencies.hashCode());
         result = prime * result + (ignored ? 1231 : 1237);
         result = prime * result + ((name == null) ? 0 : name.hashCode());
         result = prime * result + ((dependencies == null) ? 0 : dependencies.hashCode());
         result = prime * result + (ignored ? 1231 : 1237);
         result = prime * result + ((name == null) ? 0 : name.hashCode());
@@ -192,6 +199,11 @@ public class ModelledSTSTest {
                 return false;
         } else if (!coverage.equals(other.coverage))
             return false;
                 return false;
         } else if (!coverage.equals(other.coverage))
             return false;
+        if (imports== null) {
+            if (other.imports != null)
+                return false;
+        } else if (!imports.equals(other.imports))
+            return false;
         if (dependencies == null) {
             if (other.dependencies != null)
                 return false;
         if (dependencies == null) {
             if (other.dependencies != null)
                 return false;