Selaa lähdekoodia

Added testcase for orthogonal statemachine.

markus.muehlbrandt@itemis.de 13 vuotta sitten
vanhempi
commit
381e5fe6cc

+ 33 - 99
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/Test_ParallelRegionsCycleBasedStatemachine.java

@@ -74,8 +74,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 	}
 
 	public void enter() {
-		defaultInterface.setVarHierarchy(2);
-
 		nextStateIndex = 0;
 		stateVector[0] = State.State1;
 
@@ -85,6 +83,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
 			stateVector[0] = State.$NullState$;
 
+			defaultInterface.setVarHierarchy(2);
+
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() + (3));
 
@@ -100,6 +100,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			if (occuredEvents.contains(defaultInterface.getEventEvent11())) {
 				stateVector[0] = State.$NullState$;
 
+				defaultInterface.setVarHierarchy(2);
+
 				defaultInterface.setVarHierarchy(defaultInterface
 						.getVarHierarchy() + (3));
 
@@ -127,6 +129,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 				if (occuredEvents.contains(defaultInterface.getEventEvent12())) {
 					stateVector[0] = State.$NullState$;
 
+					defaultInterface.setVarHierarchy(2);
+
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() + (3));
 
@@ -143,6 +147,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 							.getEventEvent13())) {
 						stateVector[0] = State.$NullState$;
 
+						defaultInterface.setVarHierarchy(2);
+
 						defaultInterface.setVarHierarchy(defaultInterface
 								.getVarHierarchy() + (3));
 
@@ -150,7 +156,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 								.getVarHierarchy() * (4));
 
 						defaultInterface.setVarHierarchy(defaultInterface
-								.getVarHierarchy() * (5));
+								.getVarHierarchy() + (5));
 
 						nextStateIndex = 0;
 						stateVector[0] = State.State5;
@@ -187,10 +193,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
-
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
+							.getVarHierarchy() - (5));
 
 					break;
 
@@ -200,9 +203,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (6));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
-
 					break;
 
 				default :
@@ -248,8 +248,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() - (3));
 
-			defaultInterface.setVarHierarchy(2);
-
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
 
@@ -261,7 +259,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						.getVarHierarchy() * (4));
 
 				defaultInterface.setVarHierarchy(defaultInterface
-						.getVarHierarchy() * (5));
+						.getVarHierarchy() + (5));
 
 				nextStateIndex = 0;
 				stateVector[0] = State.State5;
@@ -277,9 +275,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						.contains(defaultInterface.getEventEvent9()))) {
 					stateVector[0] = State.$NullState$;
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() - (3));
-
 					//Handle exit of all possible states on position 1...
 					switch (stateVector[1]) {
 
@@ -317,7 +312,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						default :
 							break;
 					}
-					defaultInterface.setVarHierarchy(2);
+					defaultInterface.setVarHierarchy(defaultInterface
+							.getVarHierarchy() - (3));
 
 					nextStateIndex = 0;
 					stateVector[0] = State.State1;
@@ -343,10 +339,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
-
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
+							.getVarHierarchy() - (5));
 
 					break;
 
@@ -356,9 +349,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (6));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
-
 					break;
 
 				default :
@@ -404,8 +394,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() - (3));
 
-			defaultInterface.setVarHierarchy(2);
-
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
 
@@ -418,7 +406,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						stateVector[0] = State.$NullState$;
 
 						defaultInterface.setVarHierarchy(defaultInterface
-								.getVarHierarchy() / (5));
+								.getVarHierarchy() - (5));
 
 						break;
 
@@ -450,9 +438,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 				defaultInterface.setVarHierarchy(defaultInterface
 						.getVarHierarchy() / (4));
 
-				defaultInterface.setVarHierarchy(defaultInterface
-						.getVarHierarchy() - (3));
-
 				//Handle exit of all possible states on position 2...
 				switch (stateVector[2]) {
 
@@ -473,7 +458,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					default :
 						break;
 				}
-				defaultInterface.setVarHierarchy(2);
+				defaultInterface.setVarHierarchy(defaultInterface
+						.getVarHierarchy() - (3));
 
 				nextStateIndex = 0;
 				stateVector[0] = State.State1;
@@ -483,7 +469,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
+							.getVarHierarchy() - (5));
 
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() + (6));
@@ -511,10 +497,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
-
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
+							.getVarHierarchy() - (5));
 
 					break;
 
@@ -524,9 +507,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (6));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
-
 					break;
 
 				default :
@@ -572,8 +552,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() - (3));
 
-			defaultInterface.setVarHierarchy(2);
-
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
 
@@ -586,7 +564,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						stateVector[0] = State.$NullState$;
 
 						defaultInterface.setVarHierarchy(defaultInterface
-								.getVarHierarchy() / (5));
+								.getVarHierarchy() - (5));
 
 						break;
 
@@ -618,9 +596,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 				defaultInterface.setVarHierarchy(defaultInterface
 						.getVarHierarchy() / (4));
 
-				defaultInterface.setVarHierarchy(defaultInterface
-						.getVarHierarchy() - (3));
-
 				//Handle exit of all possible states on position 2...
 				switch (stateVector[2]) {
 
@@ -641,7 +616,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					default :
 						break;
 				}
-				defaultInterface.setVarHierarchy(2);
+				defaultInterface.setVarHierarchy(defaultInterface
+						.getVarHierarchy() - (3));
 
 				nextStateIndex = 0;
 				stateVector[0] = State.State1;
@@ -654,7 +630,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 							.getVarHierarchy() - (6));
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() * (5));
+							.getVarHierarchy() + (5));
 
 					nextStateIndex = 0;
 					stateVector[0] = State.State5;
@@ -679,10 +655,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
-
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
+							.getVarHierarchy() - (5));
 
 					break;
 
@@ -692,9 +665,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (6));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
-
 					break;
 
 				default :
@@ -740,8 +710,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() - (3));
 
-			defaultInterface.setVarHierarchy(2);
-
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
 
@@ -754,7 +722,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						stateVector[0] = State.$NullState$;
 
 						defaultInterface.setVarHierarchy(defaultInterface
-								.getVarHierarchy() / (5));
+								.getVarHierarchy() - (5));
 
 						break;
 
@@ -786,9 +754,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 				defaultInterface.setVarHierarchy(defaultInterface
 						.getVarHierarchy() / (4));
 
-				defaultInterface.setVarHierarchy(defaultInterface
-						.getVarHierarchy() - (3));
-
 				//Handle exit of all possible states on position 2...
 				switch (stateVector[2]) {
 
@@ -809,7 +774,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					default :
 						break;
 				}
-				defaultInterface.setVarHierarchy(2);
+				defaultInterface.setVarHierarchy(defaultInterface
+						.getVarHierarchy() - (3));
 
 				nextStateIndex = 0;
 				stateVector[0] = State.State1;
@@ -828,10 +794,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarHierarchy(defaultInterface
-									.getVarHierarchy() / (5));
-
-							defaultInterface.setVarHierarchy(defaultInterface
-									.getVarHierarchy() / (4));
+									.getVarHierarchy() - (5));
 
 							break;
 
@@ -841,9 +804,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 							defaultInterface.setVarHierarchy(defaultInterface
 									.getVarHierarchy() - (6));
 
-							defaultInterface.setVarHierarchy(defaultInterface
-									.getVarHierarchy() / (4));
-
 							break;
 
 						default :
@@ -857,9 +817,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() / (4));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() - (3));
-
 					//Handle exit of all possible states on position 2...
 					switch (stateVector[2]) {
 
@@ -880,7 +837,8 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 						default :
 							break;
 					}
-					defaultInterface.setVarHierarchy(2);
+					defaultInterface.setVarHierarchy(defaultInterface
+							.getVarHierarchy() - (3));
 
 					nextStateIndex = 0;
 					stateVector[0] = State.State1;
@@ -905,10 +863,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
-
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
+							.getVarHierarchy() - (5));
 
 					break;
 
@@ -918,9 +873,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (6));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
-
 					break;
 
 				default :
@@ -966,8 +918,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() - (3));
 
-			defaultInterface.setVarHierarchy(2);
-
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
 
@@ -997,10 +947,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarHierarchy(defaultInterface
-									.getVarHierarchy() / (5));
-
-							defaultInterface.setVarHierarchy(defaultInterface
-									.getVarHierarchy() / (4));
+									.getVarHierarchy() - (5));
 
 							break;
 
@@ -1010,9 +957,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 							defaultInterface.setVarHierarchy(defaultInterface
 									.getVarHierarchy() - (6));
 
-							defaultInterface.setVarHierarchy(defaultInterface
-									.getVarHierarchy() / (4));
-
 							break;
 
 						default :
@@ -1042,8 +986,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (3));
 
-					defaultInterface.setVarHierarchy(2);
-
 					nextStateIndex = 0;
 					stateVector[0] = State.State1;
 
@@ -1066,10 +1008,7 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					stateVector[0] = State.$NullState$;
 
 					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (5));
-
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
+							.getVarHierarchy() - (5));
 
 					break;
 
@@ -1079,9 +1018,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 					defaultInterface.setVarHierarchy(defaultInterface
 							.getVarHierarchy() - (6));
 
-					defaultInterface.setVarHierarchy(defaultInterface
-							.getVarHierarchy() / (4));
-
 					break;
 
 				default :
@@ -1127,8 +1063,6 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 			defaultInterface
 					.setVarHierarchy(defaultInterface.getVarHierarchy() - (3));
 
-			defaultInterface.setVarHierarchy(2);
-
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
 

+ 122 - 81
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestParallelRegionsCycleBasedStatemachine.java

@@ -10,12 +10,12 @@
  */
 package org.yakindu.sct.generator.java.runtime.test;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.yakindu.sct.runtime.java.test_parallelregions.DefaultInterface;
 import org.yakindu.sct.runtime.java.test_parallelregions.Test_ParallelRegionsCycleBasedStatemachine;
 import org.yakindu.sct.runtime.java.test_parallelregions.Test_ParallelRegionsCycleBasedStatemachine.State;
 
@@ -27,115 +27,156 @@ import org.yakindu.sct.runtime.java.test_parallelregions.Test_ParallelRegionsCyc
  */
 public class TestParallelRegionsCycleBasedStatemachine {
 
-	private Test_ParallelRegionsCycleBasedStatemachine statemachine;
+	private Test_ParallelRegionsCycleBasedStatemachine sm;
 
 	@Before
 	public void setUp() {
-		statemachine = new Test_ParallelRegionsCycleBasedStatemachine();
-		statemachine.init();
-		statemachine.enter();
+		sm = new Test_ParallelRegionsCycleBasedStatemachine();
+		sm.init();
+		sm.enter();
 	}
 
 	@After
 	public void tearDown() {
-		statemachine = null;
+		sm = null;
 	}
 
 	@Test
 	public void testStatemachineEnter() {
 		assertTrue("Statemachine isn't in State: " + State.State1.name() + ".",
-				statemachine.isStateActive(State.State1));
+				sm.isStateActive(State.State1));
 	}
 
 	@Test
 	public void testStatemachineHierarchyLevelOne() {
-		statemachine.getDefaultInterface().raiseEvent1();
-		statemachine.runCycle();
+		sm.getDefaultInterface().raiseEvent1();
+		sm.runCycle();
 		// Test if state is changed to State3 && State7
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State7));
 
-		statemachine.getDefaultInterface().raiseEvent5();
-		statemachine.runCycle();
+		sm.getDefaultInterface().raiseEvent5();
+		sm.runCycle();
 		// Test if state is changed to State3 && State8
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-
-		statemachine.getDefaultInterface().raiseEvent6();
-		statemachine.runCycle();
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State8));
+		assertFalse(sm.isStateActive(State.State7));
+
+		sm.getDefaultInterface().raiseEvent6();
+		sm.runCycle();
 		// Test if state is changed to State3 && State7
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-
-		statemachine.getDefaultInterface().raiseEvent3();
-		statemachine.runCycle();
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State7));
+		assertFalse(sm.isStateActive(State.State8));
+
+		sm.getDefaultInterface().raiseEvent3();
+		sm.runCycle();
 		// Test if state is back to State1
-		assertTrue(statemachine.isStateActive(State.State1));
-		assertFalse(statemachine.isStateActive(State.State3));
-		assertFalse(statemachine.isStateActive(State.State7));
-		assertFalse(statemachine.isStateActive(State.State8));
+		assertTrue(sm.isStateActive(State.State1));
+		assertFalse(sm.isStateActive(State.State3));
+		assertFalse(sm.isStateActive(State.State7));
+		assertFalse(sm.isStateActive(State.State8));
 	}
 
 	@Test
 	public void testStatemachineHierarchyLevelTwo() {
-		statemachine.getDefaultInterface().raiseEvent1();
-		statemachine.runCycle();
+		sm.getDefaultInterface().raiseEvent1();
+		sm.runCycle();
 		// Test if state is changed to State3 && State7
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State7));
 
-		statemachine.getDefaultInterface().raiseEvent2();
-		statemachine.runCycle();
+		sm.getDefaultInterface().raiseEvent2();
+		sm.runCycle();
 		// Test if state is changed to State9, State5 and State7
-		assertTrue("Statemachine isn't in State: " + State.State9.name() + ".",
-				statemachine.isStateActive(State.State9));
-		assertTrue("Statemachine isn't in State: " + State.State5.name() + ".",
-				statemachine.isStateActive(State.State5));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-
-		statemachine.getDefaultInterface().raiseEvent3();
-		statemachine.runCycle();
+		assertTrue(sm.isStateActive(State.State9));
+		assertTrue(sm.isStateActive(State.State5));
+		assertTrue(sm.isStateActive(State.State7));
+
+		sm.getDefaultInterface().raiseEvent3();
+		sm.runCycle();
 		// Test if state is changed to State9, State6 and State8
-		assertTrue("Statemachine isn't in State: " + State.State9.name() + ".",
-				statemachine.isStateActive(State.State9));
-		assertTrue("Statemachine isn't in State: " + State.State6.name() + ".",
-				statemachine.isStateActive(State.State6));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertTrue("Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-
-		statemachine.getDefaultInterface().raiseEvent6();
-		statemachine.runCycle();
+		assertTrue(sm.isStateActive(State.State9));
+		assertTrue(sm.isStateActive(State.State6));
+		assertFalse(sm.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State8));
+
+		sm.getDefaultInterface().raiseEvent6();
+		sm.runCycle();
 		// Test if state is changed to State9, State6 and State8
-		assertTrue("Statemachine isn't in State: " + State.State9.name() + ".",
-				statemachine.isStateActive(State.State9));
-		assertTrue("Statemachine isn't in State: " + State.State6.name() + ".",
-				statemachine.isStateActive(State.State6));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
+		assertTrue(sm.isStateActive(State.State9));
+		assertTrue(sm.isStateActive(State.State6));
+		assertTrue(sm.isStateActive(State.State7));
+		assertFalse(sm.isStateActive(State.State8));
+	}
+
+	@Test
+	public void testEntryAndExitExecution() {
+		DefaultInterface di = sm.getDefaultInterface();
+
+		di.raiseEvent1();
+		sm.runCycle();
+		// Exit State1
+		int hierarchy = 2;
+		// Entry State2
+		hierarchy += 3;
+		assertEquals(7, di.getVarReg3());
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		di.raiseEvent5();
+		sm.runCycle();
+		assertEquals(8, di.getVarReg3());
+
+		di.raiseEvent6();
+		sm.runCycle();
+		di.raiseEvent3();
+		sm.runCycle();
+		// Exit State1
+		hierarchy = 2;
+		assertEquals(-1, di.getVarReg3());
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		di.raiseEvent1();
+		sm.runCycle();
+		// Entry State2
+		hierarchy += 3;
+
+		di.raiseEvent2();
+		sm.runCycle();
+		// Entry State4
+		hierarchy *= 4;
+		// Entry State9
+		hierarchy += 10;
+		// Entry State5
+		hierarchy += 5;
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		di.raiseEvent8();
+		sm.runCycle();
+		// Exit State9
+		hierarchy -= 10;
+		// Exit State5
+		hierarchy -= 5;
+		// Exit State 4
+		hierarchy /= 4;
+		// Exit State 2
+		hierarchy -= 3;
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		//Jump to State6 && State9
+		di.raiseEvent11();
+		sm.runCycle();
+		// Exit State1
+		hierarchy = 2;
+		// Entry State2
+		hierarchy += 3;
+		// Entry State4
+		hierarchy *= 4;
+		// Entry State9
+		hierarchy += 10;
+		// Entry State6
+		hierarchy += 6;
+		assertEquals(hierarchy, di.getVarHierarchy());
 	}
 
 }

+ 114 - 71
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestParallelRegionsEventBasedStatemachine.java

@@ -10,6 +10,7 @@
  */
 package org.yakindu.sct.generator.java.runtime.test;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -17,7 +18,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.yakindu.sct.runtime.java.RuntimeService;
-import org.yakindu.sct.runtime.java.TimerService;
+import org.yakindu.sct.runtime.java.test_parallelregions.DefaultInterface;
 import org.yakindu.sct.runtime.java.test_parallelregions.Test_ParallelRegionsCycleBasedStatemachine.State;
 import org.yakindu.sct.runtime.java.test_parallelregions.Test_ParallelRegionsEventBasedStatemachine;
 
@@ -29,7 +30,7 @@ import org.yakindu.sct.runtime.java.test_parallelregions.Test_ParallelRegionsEve
  */
 public class TestParallelRegionsEventBasedStatemachine {
 
-	private Test_ParallelRegionsEventBasedStatemachine statemachine;
+	private Test_ParallelRegionsEventBasedStatemachine sm;
 	
 	private RuntimeService runtimeService;
 
@@ -38,113 +39,155 @@ public class TestParallelRegionsEventBasedStatemachine {
 
 	@Before
 	public void setUp() {
-		statemachine = new Test_ParallelRegionsEventBasedStatemachine();
-		statemachine.init();
-		statemachine.enter();
+		sm = new Test_ParallelRegionsEventBasedStatemachine();
+		sm.init();
+		sm.enter();
 		runtimeService = new RuntimeService(cyclePeriod);
-		runtimeService.addStatemachine(statemachine);
+		runtimeService.addStatemachine(sm);
 	}
 
 	@After
 	public void tearDown() {
-		statemachine = null;
+		sm = null;
 	}
 
 	@Test
 	public void testStatemachineEnter() {
 		assertTrue("Statemachine isn't in State: " + State.State1.name() + ".",
-				statemachine.isStateActive(State.State1));
+				sm.isStateActive(State.State1));
 	}
 
 	@Test
 	public void testStatemachineHierarchyLevelOne() throws InterruptedException {
-		statemachine.getDefaultInterface().raiseEvent1();
+		sm.getDefaultInterface().raiseEvent1();
 		Thread.sleep(5);
 		// Test if state is changed to State3 && State7
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State7));
 
-		statemachine.getDefaultInterface().raiseEvent5();
+		sm.getDefaultInterface().raiseEvent5();
 		Thread.sleep(5);
 		// Test if state is changed to State3 && State8
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State8));
+		assertFalse(sm.isStateActive(State.State7));
 
-		statemachine.getDefaultInterface().raiseEvent6();
+		sm.getDefaultInterface().raiseEvent6();
 		Thread.sleep(5);
 		// Test if state is changed to State3 && State7
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State7));
+		assertFalse(sm.isStateActive(State.State8));
 
-		statemachine.getDefaultInterface().raiseEvent3();
+		sm.getDefaultInterface().raiseEvent3();
 		Thread.sleep(5);
 		// Test if state is back to State1
-		assertTrue(statemachine.isStateActive(State.State1));
-		assertFalse(statemachine.isStateActive(State.State3));
-		assertFalse(statemachine.isStateActive(State.State7));
-		assertFalse(statemachine.isStateActive(State.State8));
+		assertTrue(sm.isStateActive(State.State1));
+		assertFalse(sm.isStateActive(State.State3));
+		assertFalse(sm.isStateActive(State.State7));
+		assertFalse(sm.isStateActive(State.State8));
 	}
 
 	@Test
 	public void testStatemachineHierarchyLevelTwo() throws InterruptedException {
-		statemachine.getDefaultInterface().raiseEvent1();
+		sm.getDefaultInterface().raiseEvent1();
 		Thread.sleep(5);
 		// Test if state is changed to State3 && State7
-		assertTrue("Statemachine isn't in State: " + State.State3.name() + ".",
-				statemachine.isStateActive(State.State3));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State3));
+		assertTrue(sm.isStateActive(State.State7));
 
-		statemachine.getDefaultInterface().raiseEvent2();
+		sm.getDefaultInterface().raiseEvent2();
 		Thread.sleep(5);
 		// Test if state is changed to State9, State5 and State7
-		assertTrue("Statemachine isn't in State: " + State.State9.name() + ".",
-				statemachine.isStateActive(State.State9));
-		assertTrue("Statemachine isn't in State: " + State.State5.name() + ".",
-				statemachine.isStateActive(State.State5));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-
-		statemachine.getDefaultInterface().raiseEvent3();
+		assertTrue(sm.isStateActive(State.State9));
+		assertTrue(sm.isStateActive(State.State5));
+		assertTrue(sm.isStateActive(State.State7));
+
+		sm.getDefaultInterface().raiseEvent3();
 		Thread.sleep(5);
 		// Test if state is changed to State9, State6 and State8
-		assertTrue("Statemachine isn't in State: " + State.State9.name() + ".",
-				statemachine.isStateActive(State.State9));
-		assertTrue("Statemachine isn't in State: " + State.State6.name() + ".",
-				statemachine.isStateActive(State.State6));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertTrue("Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
-
-		statemachine.getDefaultInterface().raiseEvent6();
+		assertTrue(sm.isStateActive(State.State9));
+		assertTrue(sm.isStateActive(State.State6));
+		assertFalse(sm.isStateActive(State.State7));
+		assertTrue(sm.isStateActive(State.State8));
+
+		sm.getDefaultInterface().raiseEvent6();
 		Thread.sleep(5);
 		// Test if state is changed to State9, State6 and State8
-		assertTrue("Statemachine isn't in State: " + State.State9.name() + ".",
-				statemachine.isStateActive(State.State9));
-		assertTrue("Statemachine isn't in State: " + State.State6.name() + ".",
-				statemachine.isStateActive(State.State6));
-		assertTrue("Statemachine isn't in State: " + State.State7.name() + ".",
-				statemachine.isStateActive(State.State7));
-		assertFalse(
-				"Statemachine isn't in State: " + State.State8.name() + ".",
-				statemachine.isStateActive(State.State8));
+		assertTrue(sm.isStateActive(State.State9));
+		assertTrue(sm.isStateActive(State.State6));
+		assertTrue(sm.isStateActive(State.State7));
+		assertFalse(sm.isStateActive(State.State8));
+	}
+
+	@Test
+	public void testEntryAndExitExecution() throws InterruptedException {
+		DefaultInterface di = sm.getDefaultInterface();
+
+		di.raiseEvent1();
+		Thread.sleep(5);
+		// Exit State1
+		int hierarchy = 2;
+		// Entry State2
+		hierarchy += 3;
+		assertEquals(7, di.getVarReg3());
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		di.raiseEvent5();
+		Thread.sleep(5);
+		assertEquals(8, di.getVarReg3());
+
+		di.raiseEvent6();
+		Thread.sleep(5);
+		di.raiseEvent3();
+		Thread.sleep(5);
+		// Exit State1
+		hierarchy = 2;
+		assertEquals(-1, di.getVarReg3());
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		di.raiseEvent1();
+		Thread.sleep(5);
+		// Entry State2
+		hierarchy += 3;
+
+		di.raiseEvent2();
+		Thread.sleep(5);
+		// Entry State4
+		hierarchy *= 4;
+		// Entry State9
+		hierarchy += 10;
+		// Entry State5
+		hierarchy += 5;
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		di.raiseEvent8();
+		Thread.sleep(5);
+		// Exit State9
+		hierarchy -= 10;
+		// Exit State5
+		hierarchy -= 5;
+		// Exit State 4
+		hierarchy /= 4;
+		// Exit State 2
+		hierarchy -= 3;
+		assertEquals(hierarchy, di.getVarHierarchy());
+
+		//Jump to State6 && State9
+		di.raiseEvent11();
+		Thread.sleep(5);
+		// Exit State1
+		hierarchy = 2;
+		// Entry State2
+		hierarchy += 3;
+		// Entry State4
+		hierarchy *= 4;
+		// Entry State9
+		hierarchy += 10;
+		// Entry State6
+		hierarchy += 6;
+		assertEquals(hierarchy, di.getVarHierarchy());
 	}
 
+
 }