]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestCommandSession.java
(refs #6878) validateOnly flag to ExpressionEvaluator and CommandSession
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / TestCommandSession.java
index 4a9bffd093c0b0737804008a4f7f148e63e3c058..784a80b4c6072383d659786d57bd9e0eb48fd1ec 100644 (file)
@@ -1,12 +1,16 @@
 package org.simantics.scl.compiler.tests;
 
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.simantics.scl.compiler.commands.CommandSession;
+import org.simantics.scl.compiler.errors.CompilationError;
+import org.simantics.scl.compiler.errors.CompilationErrorFormatter;
 import org.simantics.scl.compiler.module.repository.ModuleRepository;
 import org.simantics.scl.runtime.reporting.AbstractSCLReportingHandler;
 import org.simantics.scl.runtime.reporting.SCLReportingHandler;
 
+
 public class TestCommandSession {
 
     ModuleRepository moduleRepository;
@@ -72,5 +76,33 @@ public class TestCommandSession {
         session.execute("iter (\\i -> print i) [1,2,3]");
         session.execute("iter (\\i -> print i) [(),(),()]");
     }
+    
+    @Test
+    public void testValidation() {
+        {
+            CompilationError[] errors = CommandSession.validate(moduleRepository, "1+1");
+            Assert.assertEquals(0, errors.length);
+        }
+        {
+            CompilationError[] errors = CommandSession.validate(moduleRepository, "\"a\"+1");
+            Assert.assertEquals(1, errors.length);
+        }
+        {
+            CompilationError[] errors = CommandSession.validate(moduleRepository,
+                    "a = 1\n" +
+                    "b = 2\n" +
+                    "a + b");
+            Assert.assertEquals(0, errors.length);
+        }
+        {
+            String source = 
+                    "a = 1\n" +
+                    "b = 2.0\n" +
+                    "a + b"; 
+            CompilationError[] errors = CommandSession.validate(moduleRepository, source);
+            //System.out.println(CompilationErrorFormatter.toString(source, errors));
+            Assert.assertEquals(1, errors.length);
+        }
+    }
 
 }