Selaa lähdekoodia

added test case for using assignment within an expression

terfloth@itemis.de 13 vuotta sitten
vanhempi
commit
d68c9d442b
15 muutettua tiedostoa jossa 481 lisäystä ja 40 poistoa
  1. 22 0
      test-plugins/org.yakindu.sct.generator.c.test/gtests/AssignmentAsExpression/AssignmentAsExpression.cc
  2. 8 0
      test-plugins/org.yakindu.sct.generator.c.test/gtests/AssignmentAsExpression/AssignmentAsExpression.sgen
  3. 7 6
      test-plugins/org.yakindu.sct.generator.c.test/src-gen/org/yakindu/sct/generator/c/test/AllTests.java
  4. 39 0
      test-plugins/org.yakindu.sct.generator.c.test/src-gen/org/yakindu/sct/generator/c/test/AssignmentAsExpression.java
  5. 11 0
      test-plugins/org.yakindu.sct.generator.java.test/model/model.sgen
  6. 159 0
      test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/assignmentasexpression/AssignmentAsExpressionStatemachine.java
  7. 18 0
      test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/assignmentasexpression/IAssignmentAsExpressionStatemachine.java
  8. 4 3
      test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/sct/generator/java/test/AllTestsTest.java
  9. 45 0
      test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/sct/generator/java/test/AssignmentAsExpressionTest.java
  10. 31 30
      test-plugins/org.yakindu.sct.model.sexec.interpreter.test/src-gen/org/yakindu/sct/model/sexec/interpreter/test/AllTests.java
  11. 47 0
      test-plugins/org.yakindu.sct.model.sexec.interpreter.test/src-gen/org/yakindu/sct/model/sexec/interpreter/test/AssignmentAsExpressionTest.java
  12. 1 0
      test-plugins/org.yakindu.sct.test.models/.settings/org.eclipse.core.resources.prefs
  13. 72 0
      test-plugins/org.yakindu.sct.test.models/testmodels/AssignmentAsExpression.sct
  14. 1 1
      test-plugins/org.yakindu.sct.test.models/tests/AllTests.sctunit
  15. 16 0
      test-plugins/org.yakindu.sct.test.models/tests/AssignmentAsExpression.sctunit

+ 22 - 0
test-plugins/org.yakindu.sct.generator.c.test/gtests/AssignmentAsExpression/AssignmentAsExpression.cc

@@ -0,0 +1,22 @@
+/**
+* Copyright (c) 2012 committers of YAKINDU and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*     committers of YAKINDU - initial API and implementation
+*/
+#include <string>
+#include "gtest/gtest.h"
+#include "AssignmentAsExpression.h"
+
+TEST(StatemachineTest, simpleAssignment) {
+	AssignmentAsExpression handle;
+	assignmentAsExpression_init(&handle);
+	assignmentAsExpression_enter(&handle);
+	EXPECT_TRUE(assignmentAsExpression_isActive(&handle, AssignmentAsExpression_main_region_A));
+	EXPECT_TRUE(assignmentAsExpressionIface_get_b(&handle) == 5);
+	EXPECT_TRUE(assignmentAsExpressionIface_get_a(&handle) == 9);
+}

+ 8 - 0
test-plugins/org.yakindu.sct.generator.c.test/gtests/AssignmentAsExpression/AssignmentAsExpression.sgen

@@ -0,0 +1,8 @@
+GeneratorModel for yakindu::c {
+	statechart AssignmentAsExpression {
+		feature Outlet {
+			targetProject = "gtests"
+			targetFolder = "AssignmentAsExpression"
+		}
+	}
+}

+ 7 - 6
test-plugins/org.yakindu.sct.generator.c.test/src-gen/org/yakindu/sct/generator/c/test/AllTests.java

@@ -14,12 +14,13 @@ import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
-@SuiteClasses({AlwaysOncycle.class, BitExpressions.class,
-		BooleanExpressions.class, CKeywords.class, Choice.class,
-		DeepHistory.class, ExitOnSelfTransition.class, Guard.class,
-		GuardedEntry.class, GuardedExit.class, IntegerExpressions.class,
-		InternalEventLifeCycle.class, Parenthesis.class, PriorityValues.class,
-		RaiseEvent.class, SameNameDifferentRegion.class, ShallowHistory.class,
+@SuiteClasses({AlwaysOncycle.class, AssignmentAsExpression.class,
+		BitExpressions.class, BooleanExpressions.class, CKeywords.class,
+		Choice.class, DeepHistory.class, ExitOnSelfTransition.class,
+		Guard.class, GuardedEntry.class, GuardedExit.class,
+		IntegerExpressions.class, InternalEventLifeCycle.class,
+		Parenthesis.class, PriorityValues.class, RaiseEvent.class,
+		SameNameDifferentRegion.class, ShallowHistory.class,
 		SimpleHietachy.class, StateIsActive.class,
 		StatechartLocalReactions.class, StringExpressions.class,
 		SyncFork.class, SyncJoin.class, ValuedEvent.class, SimpleEvent.class})

+ 39 - 0
test-plugins/org.yakindu.sct.generator.c.test/src-gen/org/yakindu/sct/generator/c/test/AssignmentAsExpression.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.c.test;
+
+import java.util.Collection;
+
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.yakindu.sct.generator.c.gtest.GTest;
+import org.yakindu.sct.generator.c.gtest.GTestRunner;
+import org.yakindu.sct.generator.c.gtest.GTestHelper;
+
+@GTest(sourceFile = "gtests/AssignmentAsExpression/AssignmentAsExpression.cc", program = "gtests/AssignmentAsExpression/AssignmentAsExpression", model = "testmodels/AssignmentAsExpression.sct")
+@RunWith(GTestRunner.class)
+public class AssignmentAsExpression {
+
+	protected final GTestHelper helper = new GTestHelper(this) {
+
+		@Override
+		protected void getSourceFiles(Collection<String> files) {
+			super.getSourceFiles(files);
+			files.add(getFileName(getTestProgram()) + ".c");
+		}
+	};
+
+	@Before
+	public void setUp() {
+		helper.generate();
+		helper.compile();
+	}
+}

+ 11 - 0
test-plugins/org.yakindu.sct.generator.java.test/model/model.sgen

@@ -10,6 +10,17 @@ GeneratorModel for yakindu::java {
 			RuntimeService = true
 		}
 	}
+	statechart AssignmentAsExpression {
+		feature Outlet {
+			targetProject = "org.yakindu.sct.generator.java.test"
+			targetFolder = "src-gen"
+		}
+
+		feature GeneralFeatures {
+			TimerService = true
+			RuntimeService = true
+		}
+	}
 	statechart Choice {
 		feature Outlet {
 			targetProject = "org.yakindu.sct.generator.java.test"

+ 159 - 0
test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/assignmentasexpression/AssignmentAsExpressionStatemachine.java

@@ -0,0 +1,159 @@
+package org.yakindu.scr.assignmentasexpression;
+
+public class AssignmentAsExpressionStatemachine
+		implements
+			IAssignmentAsExpressionStatemachine {
+
+	private final class SCIDefaultImpl implements SCIDefault {
+
+		private int a = 0;
+
+		public int getA() {
+			return a;
+		}
+
+		public void setA(int value) {
+			this.a = value;
+		}
+
+		private int b = 0;
+
+		public int getB() {
+			return b;
+		}
+
+		public void setB(int value) {
+			this.b = value;
+		}
+
+	}
+
+	private SCIDefaultImpl sCIDefault;
+
+	public enum State {
+		Main_region_A, $NullState$
+	};
+
+	private final State[] stateVector = new State[1];
+
+	private int nextStateIndex;
+
+	public AssignmentAsExpressionStatemachine() {
+
+		sCIDefault = new SCIDefaultImpl();
+
+	}
+
+	public void init() {
+		for (int i = 0; i < 1; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+
+		clearEvents();
+		clearOutEvents();
+	}
+
+	protected void clearEvents() {
+
+	}
+
+	protected void clearOutEvents() {
+	}
+
+	public boolean isStateActive(State state) {
+		switch (state) {
+
+			case Main_region_A :
+				return stateVector[0] == State.Main_region_A;
+
+			default :
+				return false;
+		}
+		/*
+		for (int i=0;i<stateVector.length;i++){
+			if (stateVector[i]==state) {
+				return true;
+			}
+		}
+		return false;
+		 */
+	}
+
+	public SCIDefault getSCIDefault() {
+		return sCIDefault;
+	}
+
+	public int getA() {
+		return sCIDefault.getA();
+	}
+
+	public void setA(int value) {
+		sCIDefault.setA(value);
+	}
+	public int getB() {
+		return sCIDefault.getB();
+	}
+
+	public void setB(int value) {
+		sCIDefault.setB(value);
+	}
+
+	public void enter() {
+		sCIDefault.a = 0;
+
+		sCIDefault.b = 0;
+
+		entryActionAssignmentAsExpression();
+		sCIDefault.a = ((sCIDefault.b = 5)) + 4;
+
+		nextStateIndex = 0;
+		stateVector[0] = State.Main_region_A;
+
+	}
+
+	public void exit() {
+		//Handle exit of all possible states (of main region) at position 0...
+		switch (stateVector[0]) {
+
+			case Main_region_A :
+				stateVector[0] = State.$NullState$;
+
+				break;
+
+			default :
+				break;
+		}
+
+		exitActionAssignmentAsExpression();
+	}
+
+	private void entryActionAssignmentAsExpression() {
+
+	}
+
+	private void exitActionAssignmentAsExpression() {
+
+	}
+
+	private void reactMain_region_A() {
+
+	}
+
+	public void runCycle() {
+
+		clearOutEvents();
+
+		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
+
+			switch (stateVector[nextStateIndex]) {
+				case Main_region_A :
+					reactMain_region_A();
+					break;
+				default :
+					// $NullState$
+			}
+		}
+
+		clearEvents();
+	}
+}

+ 18 - 0
test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/assignmentasexpression/IAssignmentAsExpressionStatemachine.java

@@ -0,0 +1,18 @@
+package org.yakindu.scr.assignmentasexpression;
+
+import org.yakindu.scr.IStatemachine;
+
+public interface IAssignmentAsExpressionStatemachine extends IStatemachine {
+
+	public interface SCIDefault {
+
+		public int getA();
+		public void setA(int value);
+		public int getB();
+		public void setB(int value);
+
+	}
+
+	public SCIDefault getSCIDefault();
+
+}

+ 4 - 3
test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/sct/generator/java/test/AllTestsTest.java

@@ -14,9 +14,10 @@ import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
-@SuiteClasses({AlwaysOncycleTest.class, BitExpressionsTest.class,
-		BooleanExpressionsTest.class, CKeywordsTest.class, ChoiceTest.class,
-		DeepHistoryTest.class, ExitOnSelfTransitionTest.class, GuardTest.class,
+@SuiteClasses({AlwaysOncycleTest.class, AssignmentAsExpressionTest.class,
+		BitExpressionsTest.class, BooleanExpressionsTest.class,
+		CKeywordsTest.class, ChoiceTest.class, DeepHistoryTest.class,
+		ExitOnSelfTransitionTest.class, GuardTest.class,
 		GuardedEntryTest.class, GuardedExitTest.class,
 		IntegerExpressionsTest.class, InternalEventLifeCycleTest.class,
 		ParenthesisTest.class, PriorityValuesTest.class, RaiseEventTest.class,

+ 45 - 0
test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/sct/generator/java/test/AssignmentAsExpressionTest.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.java.test;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.yakindu.scr.assignmentasexpression.AssignmentAsExpressionStatemachine;
+import org.yakindu.scr.assignmentasexpression.AssignmentAsExpressionStatemachine.State;
+/**
+ *  Unit TestCase for AssignmentAsExpression
+ */
+@SuppressWarnings("all")
+public class AssignmentAsExpressionTest {
+
+	private AssignmentAsExpressionStatemachine statemachine;
+
+	@Before
+	public void setUp() {
+		statemachine = new AssignmentAsExpressionStatemachine();
+		statemachine.init();
+		statemachine.enter();
+	}
+
+	@After
+	public void tearDown() {
+		statemachine = null;
+	}
+
+	@Test
+	public void testsimpleAssignment() {
+		assertTrue(statemachine.isStateActive(State.Main_region_A));
+		assertTrue(statemachine.getB() == 5);
+		assertTrue(statemachine.getA() == 9);
+	}
+}

+ 31 - 30
test-plugins/org.yakindu.sct.model.sexec.interpreter.test/src-gen/org/yakindu/sct/model/sexec/interpreter/test/AllTests.java

@@ -1,30 +1,31 @@
-/**
- * Copyright (c) 2012 committers of YAKINDU and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     committers of YAKINDU - initial API and implementation
- */
-package org.yakindu.sct.model.sexec.interpreter.test;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@RunWith(Suite.class)
-@SuiteClasses({AlwaysOncycleTest.class, BitExpressionsTest.class,
-		BooleanExpressionsTest.class, CKeywordsTest.class, ChoiceTest.class,
-		DeepHistoryTest.class, ExitOnSelfTransitionTest.class, GuardTest.class,
-		GuardedEntryTest.class, GuardedExitTest.class,
-		IntegerExpressionsTest.class, InternalEventLifeCycleTest.class,
-		ParenthesisTest.class, PriorityValuesTest.class, RaiseEventTest.class,
-		SameNameDifferentRegionTest.class, ShallowHistoryTest.class,
-		SimpleHierachyTest.class, StateIsActiveTest.class,
-		StatechartLocalReactionsTest.class, StringExpressionsTest.class,
-		SyncForkTest.class, SyncJoinTest.class, ValuedEventsTest.class,
-		SimpleEventTest.class})
-public class AllTests {
-}
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.model.sexec.interpreter.test;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({AlwaysOncycleTest.class, AssignmentAsExpressionTest.class,
+		BitExpressionsTest.class, BooleanExpressionsTest.class,
+		CKeywordsTest.class, ChoiceTest.class, DeepHistoryTest.class,
+		ExitOnSelfTransitionTest.class, GuardTest.class,
+		GuardedEntryTest.class, GuardedExitTest.class,
+		IntegerExpressionsTest.class, InternalEventLifeCycleTest.class,
+		ParenthesisTest.class, PriorityValuesTest.class, RaiseEventTest.class,
+		SameNameDifferentRegionTest.class, ShallowHistoryTest.class,
+		SimpleHierachyTest.class, StateIsActiveTest.class,
+		StatechartLocalReactionsTest.class, StringExpressionsTest.class,
+		SyncForkTest.class, SyncJoinTest.class, ValuedEventsTest.class,
+		SimpleEventTest.class})
+public class AllTests {
+}

+ 47 - 0
test-plugins/org.yakindu.sct.model.sexec.interpreter.test/src-gen/org/yakindu/sct/model/sexec/interpreter/test/AssignmentAsExpressionTest.java

@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.model.sexec.interpreter.test;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.yakindu.sct.model.sexec.interpreter.test.util.AbstractExecutionFlowTest;
+import org.yakindu.sct.model.sexec.interpreter.test.util.SExecInjectionProvider;
+import com.google.inject.Inject;
+import org.junit.Before;
+import org.yakindu.sct.model.sexec.interpreter.IExecutionFlowInterpreter;
+import org.yakindu.sct.model.sexec.ExecutionFlow;
+import util.TestModels;
+import static junit.framework.Assert.*;
+/**
+ *  Unit TestCase for AssignmentAsExpression
+ */
+@SuppressWarnings("all")
+@RunWith(XtextRunner.class)
+@InjectWith(SExecInjectionProvider.class)
+public class AssignmentAsExpressionTest extends AbstractExecutionFlowTest {
+
+	@Inject
+	private TestModels models;
+
+	@Before
+	public void setup() throws Exception {
+		ExecutionFlow flow = models
+				.loadExecutionFlowFromResource("AssignmentAsExpression.sct");
+		initInterpreter(flow);
+	}
+	@Test
+	public void simpleAssignment() throws Exception {
+		assertTrue(isActive("A"));
+		assertTrue(getInteger("b") == 5);
+		assertTrue(getInteger("a") == 9);
+	}
+}

+ 1 - 0
test-plugins/org.yakindu.sct.test.models/.settings/org.eclipse.core.resources.prefs

@@ -1,5 +1,6 @@
 eclipse.preferences.version=1
 encoding//testmodels/AlwaysOncycle.sct=UTF-8
+encoding//testmodels/AssignmentAsExpression.sct=UTF-8
 encoding//testmodels/ExitOnSelfTransition.sct=UTF-8
 encoding//testmodels/GuardedEntry.sct=UTF-8
 encoding//testmodels/GuardedExit.sct=UTF-8

+ 72 - 0
test-plugins/org.yakindu.sct.test.models/testmodels/AssignmentAsExpression.sct

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_jC0fkAbeEeKcGdE-_70tiA" specification="&#xA;interface:&#xA;&#xA;&#x9;var a : integer = 0&#xA;&#x9;var b : integer = 0" name="AssignmentAsExpression">
+    <regions xmi:id="_jC1tsgbeEeKcGdE-_70tiA" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_jC6mNgbeEeKcGdE-_70tiA">
+        <outgoingTransitions xmi:id="_jC9CcwbeEeKcGdE-_70tiA" target="_jC70UgbeEeKcGdE-_70tiA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_jC70UgbeEeKcGdE-_70tiA" specification="entry / a = (b = 5) + 4" name="A" incomingTransitions="_jC9CcwbeEeKcGdE-_70tiA"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_jC1tsAbeEeKcGdE-_70tiA" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_jC0fkAbeEeKcGdE-_70tiA" measurementUnit="Pixel">
+    <children xmi:id="_jC4J8AbeEeKcGdE-_70tiA" type="Region" element="_jC1tsgbeEeKcGdE-_70tiA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_jC6mMAbeEeKcGdE-_70tiA" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_jC6mMQbeEeKcGdE-_70tiA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_jC6mMgbeEeKcGdE-_70tiA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_jC6mMwbeEeKcGdE-_70tiA" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_jC7NQAbeEeKcGdE-_70tiA" type="Entry" element="_jC6mNgbeEeKcGdE-_70tiA">
+          <children xmi:id="_jC7NQwbeEeKcGdE-_70tiA" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_jC7NRgbeEeKcGdE-_70tiA" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_jC7NRwbeEeKcGdE-_70tiA"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_jC70UAbeEeKcGdE-_70tiA"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_jC7NRAbeEeKcGdE-_70tiA" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC7NRQbeEeKcGdE-_70tiA"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_jC7NQQbeEeKcGdE-_70tiA" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC70UQbeEeKcGdE-_70tiA" x="70" y="20"/>
+        </children>
+        <children xmi:id="_jC70VAbeEeKcGdE-_70tiA" type="State" element="_jC70UgbeEeKcGdE-_70tiA">
+          <children xsi:type="notation:DecorationNode" xmi:id="_jC8bYAbeEeKcGdE-_70tiA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_jC8bYQbeEeKcGdE-_70tiA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_jC8bYgbeEeKcGdE-_70tiA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_jC8bYwbeEeKcGdE-_70tiA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_jC8bZAbeEeKcGdE-_70tiA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC8bZQbeEeKcGdE-_70tiA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_jC9CcAbeEeKcGdE-_70tiA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_jC70VQbeEeKcGdE-_70tiA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_jC70VgbeEeKcGdE-_70tiA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_jC9CcQbeEeKcGdE-_70tiA"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC9CcgbeEeKcGdE-_70tiA" x="40" y="80" width="223"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC6mNAbeEeKcGdE-_70tiA"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_jC4J8QbeEeKcGdE-_70tiA" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC6mNQbeEeKcGdE-_70tiA" x="220" y="10" width="400" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_jC-QkwbeEeKcGdE-_70tiA" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_jC-QlQbeEeKcGdE-_70tiA" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_jC-QlgbeEeKcGdE-_70tiA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_jC-QlwbeEeKcGdE-_70tiA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_jC-3oAbeEeKcGdE-_70tiA" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC-3oQbeEeKcGdE-_70tiA"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jC-3ogbeEeKcGdE-_70tiA" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_jC1tsQbeEeKcGdE-_70tiA"/>
+    <edges xmi:id="_jC9pgAbeEeKcGdE-_70tiA" type="Transition" element="_jC9CcwbeEeKcGdE-_70tiA" source="_jC7NQAbeEeKcGdE-_70tiA" target="_jC70VAbeEeKcGdE-_70tiA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_jC-QkAbeEeKcGdE-_70tiA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_jC-QkQbeEeKcGdE-_70tiA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_jC-QkgbeEeKcGdE-_70tiA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_jC9pgQbeEeKcGdE-_70tiA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_jC9pgwbeEeKcGdE-_70tiA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_jC9pggbeEeKcGdE-_70tiA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 1 - 1
test-plugins/org.yakindu.sct.test.models/tests/AllTests.sctunit

@@ -1,5 +1,5 @@
 testsuite AllTests { 
-	AlwaysOncycle , BitExpressions , BooleanExpressions , CKeywords,
+	AlwaysOncycle , AssignmentAsExpression, BitExpressions , BooleanExpressions , CKeywords,
 	Choice , DeepHistory,
 	ExitOnSelfTransition,
 	//FeatureCalls,

+ 16 - 0
test-plugins/org.yakindu.sct.test.models/tests/AssignmentAsExpression.sctunit

@@ -0,0 +1,16 @@
+
+testgroup AssignmentAsExpression for statechart AssignmentAsExpression{
+	
+	 
+	  test simpleAssignment{ 
+	  	
+	  	assert active(AssignmentAsExpression.main_region.A) 
+	  	
+	  	assert b == 5
+	  	assert a == 9
+	  	
+	  }
+	  	 
+	 
+}
+