Explorar o código

Added Null Literal Tests

Andreas Mülder %!s(int64=12) %!d(string=hai) anos
pai
achega
da1774c70c

+ 19 - 33
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/StextParserRuleTest.java

@@ -84,6 +84,12 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("''", rule);
 	}
 
+	@Test
+	public void testNullLiteral() {
+		String rule = PrimitiveValueExpression.class.getSimpleName();
+		parseExpression("null", rule);
+	}
+
 	/**
 	 * VariableDefinition: {VariableDefinition} 'var' ((readonly?='readonly')? &
 	 * (external?='external')?) name=ID ':' type=[types::Type|FQN] ('='
@@ -99,6 +105,7 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("var readonly external MyVar : integer", rule);
 		parseExpression("var external readonly MyVar : integer", rule);
 		parseExpression("var MyVar : integer = 3 * 3", rule);
+		parseExpression("var MyVar : string = null", rule);
 	}
 
 	/**
@@ -114,6 +121,7 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("in event event1 : integer", rule);
 		parseExpression("out event event1 : integer", rule);
 		parseExpression("event event1 : integer", rule);
+		parseExpression("event event1 : string", rule);
 
 	}
 
@@ -129,25 +137,8 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("operation myOpp() : boolean", rule);
 		parseExpression("operation myOpp(param1: integer)", rule);
 		parseExpression("operation myOpp(param1 : boolean) : integer", rule);
-		parseExpression(
-				"operation myOpp(param1 : boolean, param2 : real) : integer",
-				rule);
-		parseExpression(
-				"operation myOpp(param1 : real, param2 : real) : integer", rule);
-	}
-
-	@Test
-	@Ignore("Disabled entry / exit points for release")
-	public void testEntryPoint() {
-		// String rule = Entrypoint.class.getSimpleName();
-		// parseExpression("entrypoint MyentryPoint", rule);
-	}
-
-	@Test
-	@Ignore("Disabled entry / exit points for release")
-	public void testExitPoint() {
-		// String rule = Exitpoint.class.getSimpleName();
-		// parseExpression("exitpoint MyentryPoint", rule);
+		parseExpression("operation myOpp(param1 : boolean, param2 : real) : integer", rule);
+		parseExpression("operation myOpp(param1 : real, param2 : real) : integer", rule);
 	}
 
 	/**
@@ -171,8 +162,8 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("always", rule);
 		parseExpression("intEvent, after 10s", internalScope(), rule);
 		parseExpression("intEvent, after 10s, every 10 ms", internalScope(), rule);
-		parseExpression("intEvent, after 10s [false == true]", internalScope(),
-				rule);
+		parseExpression("intEvent, after 10s [false == true]", internalScope(), rule);
+		parseExpression("intEvent, after 10s ['' != null]", internalScope(), rule);
 		parseExpression("intEvent, after 10s [5  > 10]", internalScope(), rule);
 		parseExpression("ABC.intEvent", interfaceScope(), rule);
 	}
@@ -205,20 +196,17 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("raise ABC.intEvent : 5", interfaceScope(), rule);
 		parseExpression("ABC.paramOp()", interfaceScope(), rule);
 		parseExpression("ABC.paramOp(5,false)", interfaceScope(), rule);
-		parseExpression("ABC.paramOp(); raise ABC.voidEvent ", interfaceScope(),
-				rule);
+		parseExpression("ABC.paramOp(null)", interfaceScope(), rule);
+		parseExpression("ABC.paramOp(); raise ABC.voidEvent ", interfaceScope(), rule);
 
 	}
 
-	/**
-	 * ReactionProperties: {ReactionProperties} (properties+=ReactionProperty)*;
-	 */
 	@Test
 	@Ignore("Disabled entry / exit points for release")
 	public void testReactionProperties() {
-		// String rule = ReactionProperties.class.getSimpleName();
-		// parseExpression("> ABC.EntryPoint", interfaceScope(), rule);
-		// parseExpression("ABC.ExitPoint >", interfaceScope(), rule);
+//		 String rule = ReactionProperties.class.getSimpleName();
+//		 parseExpression("> ABC.EntryPoint", interfaceScope(), rule);
+//		 parseExpression("ABC.ExitPoint >", interfaceScope(), rule);
 	}
 
 	/**
@@ -228,8 +216,7 @@ public class StextParserRuleTest extends AbstractSTextTest {
 	@Test
 	public void tesLocalReaction() {
 		String rule = LocalReaction.class.getSimpleName();
-		parseExpression("entry [ABC.intVar > 10] / raise ABC.intEvent",
-				interfaceScope(), rule);
+		parseExpression("entry [ABC.intVar > 10] / raise ABC.intEvent", interfaceScope(), rule);
 	}
 
 	/**
@@ -269,8 +256,7 @@ public class StextParserRuleTest extends AbstractSTextTest {
 		parseExpression("internal : event voidEvent", rule);
 		parseExpression("internal : var intVar : integer", rule);
 		parseExpression("internal : operation voidOp()", rule);
-		parseExpression("internal : every 10 ms / raise intEvent", internalScope(),
-				rule);
+		parseExpression("internal : every 10 ms / raise intEvent", internalScope(), rule);
 	}
 
 	/**