瀏覽代碼

Issue 67: Add generator tests for operations calls without braces

bohl@itemis.de 10 年之前
父節點
當前提交
1a65dfeef5
共有 23 個文件被更改,包括 951 次插入12 次删除
  1. 34 0
      test-plugins/org.yakindu.sct.generator.c.test/gtests/OperationsWithoutBraces/OperationsWithoutBraces.cc
  2. 8 0
      test-plugins/org.yakindu.sct.generator.c.test/gtests/OperationsWithoutBraces/OperationsWithoutBraces.sgen
  3. 12 0
      test-plugins/org.yakindu.sct.generator.c.test/model/test.sgen
  4. 6 5
      test-plugins/org.yakindu.sct.generator.c.test/test-gen/org/yakindu/sct/generator/c/test/AllTests.java
  5. 39 0
      test-plugins/org.yakindu.sct.generator.c.test/test-gen/org/yakindu/sct/generator/c/test/OperationsWithoutBraces.java
  6. 8 0
      test-plugins/org.yakindu.sct.generator.cpp.test/gtests/OperationsWithoutBracesTest/OperationsWithoutBraces.sgen
  7. 31 0
      test-plugins/org.yakindu.sct.generator.cpp.test/gtests/OperationsWithoutBracesTest/OperationsWithoutBracesTest.cc
  8. 14 0
      test-plugins/org.yakindu.sct.generator.cpp.test/model/test.sgen
  9. 3 2
      test-plugins/org.yakindu.sct.generator.cpp.test/test-gen/org/yakindu/sct/generator/cpp/test/AllTestsTest.java
  10. 39 0
      test-plugins/org.yakindu.sct.generator.cpp.test/test-gen/org/yakindu/sct/generator/cpp/test/OperationsWithoutBracesTest.java
  11. 12 0
      test-plugins/org.yakindu.sct.generator.java.test/model/model.sgen
  12. 8 0
      test-plugins/org.yakindu.sct.generator.java.test/model/test.sgen
  13. 20 0
      test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/operationswithoutbraces/IOperationsWithoutBracesStatemachine.java
  14. 273 0
      test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/operationswithoutbraces/OperationsWithoutBracesStatemachine.java
  15. 4 3
      test-plugins/org.yakindu.sct.generator.java.test/test-gen/org/yakindu/sct/generator/java/test/AllTestsTest.java
  16. 54 0
      test-plugins/org.yakindu.sct.generator.java.test/test-gen/org/yakindu/sct/generator/java/test/OperationsWithoutBracesTest.java
  17. 9 0
      test-plugins/org.yakindu.sct.simulation.core.sexec.test/model/test.sgen
  18. 3 2
      test-plugins/org.yakindu.sct.simulation.core.sexec.test/test-gen/org/yakindu/sct/simulation/core/sexec/test/AllTestsTest.java
  19. 51 0
      test-plugins/org.yakindu.sct.simulation.core.sexec.test/test-gen/org/yakindu/sct/simulation/core/sexec/test/OperationsWithoutBracesTest.java
  20. 1 0
      test-plugins/org.yakindu.sct.test.models/.settings/org.eclipse.core.resources.prefs
  21. 295 0
      test-plugins/org.yakindu.sct.test.models/testmodels/SCTUnit/OperationsWithoutBraces.sct
  22. 1 0
      test-plugins/org.yakindu.sct.test.models/tests/AllTests.sctunit
  23. 26 0
      test-plugins/org.yakindu.sct.test.models/tests/OperationsWithoutBraces.sctunit

+ 34 - 0
test-plugins/org.yakindu.sct.generator.c.test/gtests/OperationsWithoutBraces/OperationsWithoutBraces.cc

@@ -0,0 +1,34 @@
+/**
+* Copyright (c) 2015 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 "OperationsWithoutBraces.h"
+
+
+OperationsWithoutBraces handle;
+
+TEST(StatemachineTest, OperationsWithoutBracesTest) {
+	operationsWithoutBraces_init(&handle);
+	operationsWithoutBraces_enter(&handle);
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_main_region_A));
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_another_region_A));
+	operationsWithoutBraces_runCycle(&handle);
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_main_region_B));
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_another_region_B));
+	operationsWithoutBraces_runCycle(&handle);
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_main_region_C));
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_another_region_C));
+	operationsWithoutBraces_runCycle(&handle);
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_main_region_D));
+	EXPECT_TRUE(operationsWithoutBraces_isActive(&handle, OperationsWithoutBraces_another_region_D));
+}
+
+		

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

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

+ 12 - 0
test-plugins/org.yakindu.sct.generator.c.test/model/test.sgen

@@ -408,6 +408,18 @@ GeneratorModel for sctunit::c {
 			WrapToJUnit =  "true" 
 		}			
 	}
+	
+	test OperationsWithoutBraces{
+		
+		feature Outlet{ 
+			targetProject = "org.yakindu.sct.generator.c.test" 
+			targetFolder = "test-gen"			
+		}		
+				
+		feature JUnitWrapper {
+			WrapToJUnit =  "true" 
+		}			
+	}
 
 	test OutEventLifeCycle{
 		

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

@@ -26,11 +26,12 @@ import org.junit.runners.Suite.SuiteClasses;
 		InEventLifeCycle.class, IntegerExpressions.class,
 		InternalEventLifeCycle.class, LocalReactions.class,
 		LogicalAndTests.class, LogicalOrTests.class,
-		NamedInterfaceAccess.class, OutEventLifeCycle.class, Parenthesis.class,
-		PriorityValues.class, RaiseEvent.class, SameNameDifferentRegion.class,
-		ShallowHistory.class, ShallowHistoryWithDeepEntry.class,
-		SimpleEvent.class, StatechartLocalReactions.class,
-		SimpleHierachy.class, StateIsActive.class, StaticChoice.class,
+		NamedInterfaceAccess.class, OperationsWithoutBraces.class,
+		OutEventLifeCycle.class, Parenthesis.class, PriorityValues.class,
+		RaiseEvent.class, SameNameDifferentRegion.class, ShallowHistory.class,
+		ShallowHistoryWithDeepEntry.class, SimpleEvent.class,
+		StatechartLocalReactions.class, SimpleHierachy.class,
+		StateIsActive.class, StaticChoice.class,
 		STextKeywordsInStatesAndRegions.class, StringExpressions.class,
 		SyncFork.class, SyncJoin.class, TransitionWithoutCondition.class,
 		TriggerGuardExpressions.class, ValuedEvents.class})

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

@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2015 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/OperationsWithoutBraces/OperationsWithoutBraces.cc", program = "gtests/OperationsWithoutBraces/OperationsWithoutBraces", model = "testmodels/SCTUnit/OperationsWithoutBraces.sct")
+@RunWith(GTestRunner.class)
+public class OperationsWithoutBraces {
+
+	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();
+	}
+}

+ 8 - 0
test-plugins/org.yakindu.sct.generator.cpp.test/gtests/OperationsWithoutBracesTest/OperationsWithoutBraces.sgen

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

+ 31 - 0
test-plugins/org.yakindu.sct.generator.cpp.test/gtests/OperationsWithoutBracesTest/OperationsWithoutBracesTest.cc

@@ -0,0 +1,31 @@
+/**
+* Copyright (c) 2015 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 "OperationsWithoutBraces.h"
+
+TEST(StatemachineTest, OperationsWithoutBracesTest) {
+	OperationsWithoutBraces* statechart = new OperationsWithoutBraces();
+	statechart->init();
+	statechart->enter();
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::main_region_A));
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::another_region_A));
+	statechart->runCycle();
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::main_region_B));
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::another_region_B));
+	statechart->runCycle();
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::main_region_C));
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::another_region_C));
+	statechart->runCycle();
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::main_region_D));
+	EXPECT_TRUE(statechart->isActive(OperationsWithoutBraces::another_region_D));
+	delete statechart;
+}

+ 14 - 0
test-plugins/org.yakindu.sct.generator.cpp.test/model/test.sgen

@@ -410,6 +410,20 @@ GeneratorModel for sctunit::cpp {
 		}			
 	}
 
+	test OperationsWithoutBraces{
+		
+		feature Outlet{ 
+			targetProject = "org.yakindu.sct.generator.cpp.test" 
+			targetFolder = "test-gen"			
+		}		
+		
+		feature JUnitWrapper {
+			WrapToJUnit =  "true"
+		}			
+	}
+
+
+
 	test OutEventLifeCycle{
 		
 		feature Outlet{ 

+ 3 - 2
test-plugins/org.yakindu.sct.generator.cpp.test/test-gen/org/yakindu/sct/generator/cpp/test/AllTestsTest.java

@@ -28,8 +28,9 @@ import org.junit.runners.Suite.SuiteClasses;
 		InEventLifeCycleTest.class, IntegerExpressionsTest.class,
 		InternalEventLifeCycleTest.class, LocalReactionsTest.class,
 		LogicalAndTestsTest.class, LogicalOrTestsTest.class,
-		NamedInterfaceAccessTest.class, OutEventLifeCycleTest.class,
-		ParenthesisTest.class, PriorityValuesTest.class, RaiseEventTest.class,
+		NamedInterfaceAccessTest.class, OperationsWithoutBracesTest.class,
+		OutEventLifeCycleTest.class, ParenthesisTest.class,
+		PriorityValuesTest.class, RaiseEventTest.class,
 		SameNameDifferentRegionTest.class, ShallowHistoryTest.class,
 		ShallowHistoryWithDeepEntryTest.class, SimpleEventTest.class,
 		StatechartLocalReactionsTest.class, SimpleHierachyTest.class,

+ 39 - 0
test-plugins/org.yakindu.sct.generator.cpp.test/test-gen/org/yakindu/sct/generator/cpp/test/OperationsWithoutBracesTest.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2015 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.cpp.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/OperationsWithoutBracesTest/OperationsWithoutBracesTest.cc", program = "gtests/OperationsWithoutBracesTest/OperationsWithoutBraces", model = "testmodels/SCTUnit/OperationsWithoutBraces.sct")
+@RunWith(GTestRunner.class)
+public class OperationsWithoutBracesTest {
+
+	protected final GTestHelper helper = new GTestHelper(this) {
+
+		@Override
+		protected void getSourceFiles(Collection<String> files) {
+			super.getSourceFiles(files);
+			files.add(getFileName(getTestProgram()) + ".cpp");
+		}
+	};
+
+	@Before
+	public void setUp() {
+		helper.generate();
+		helper.compile();
+	}
+}

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

@@ -415,6 +415,18 @@ GeneratorModel for yakindu::java {
 		}
 	}	
 	
+	statechart OperationsWithoutBraces {
+		feature Outlet {
+			targetProject = "org.yakindu.sct.generator.java.test"
+			targetFolder = "src-gen"
+		}
+
+		feature GeneralFeatures {
+			TimerService = true
+			RuntimeService = true
+ 		}
+	}
+	
 	statechart Operations {
 		feature Outlet {
 			targetProject = "org.yakindu.sct.generator.java.test"

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

@@ -274,6 +274,14 @@ GeneratorModel for sctunit::java {
 		}			
 	}
 	
+	test OperationsWithoutBraces{
+		
+		feature Outlet{ 
+			targetProject = "org.yakindu.sct.generator.java.test" 
+			targetFolder = "test-gen"			
+		}			
+	}
+	
 	test OutEventLifeCycle{
 		
 		feature Outlet{ 

+ 20 - 0
test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/operationswithoutbraces/IOperationsWithoutBracesStatemachine.java

@@ -0,0 +1,20 @@
+package org.yakindu.scr.operationswithoutbraces;
+import org.yakindu.scr.IStatemachine;
+
+public interface IOperationsWithoutBracesStatemachine extends IStatemachine {
+
+	public interface SCInterface {
+
+		public void setSCInterfaceOperationCallback(
+				SCInterfaceOperationCallback operationCallback);
+	}
+
+	public interface SCInterfaceOperationCallback {
+		public boolean myBoolOp();
+		public long myIntOp();
+		public double myRealOp();
+	}
+
+	public SCInterface getSCInterface();
+
+}

+ 273 - 0
test-plugins/org.yakindu.sct.generator.java.test/src-gen/org/yakindu/scr/operationswithoutbraces/OperationsWithoutBracesStatemachine.java

@@ -0,0 +1,273 @@
+package org.yakindu.scr.operationswithoutbraces;
+
+public class OperationsWithoutBracesStatemachine
+		implements
+			IOperationsWithoutBracesStatemachine {
+
+	static {
+	}
+
+	private final class SCInterfaceImpl implements SCInterface {
+
+		private SCInterfaceOperationCallback operationCallback;
+
+		public void setSCInterfaceOperationCallback(
+				SCInterfaceOperationCallback operationCallback) {
+			this.operationCallback = operationCallback;
+		}
+
+	}
+
+	private SCInterfaceImpl sCInterface;
+
+	public enum State {
+		main_region_A, main_region_B, main_region_C, main_region_D, another_region_A, another_region_B, another_region_C, another_region_D, $NullState$
+	};
+
+	private final State[] stateVector = new State[2];
+
+	private int nextStateIndex;
+
+	public OperationsWithoutBracesStatemachine() {
+
+		sCInterface = new SCInterfaceImpl();
+	}
+
+	public void init() {
+		for (int i = 0; i < 2; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+
+		clearEvents();
+		clearOutEvents();
+
+	}
+
+	public void enter() {
+		entryAction();
+
+		nextStateIndex = 0;
+		stateVector[0] = State.main_region_A;
+
+		nextStateIndex = 1;
+		stateVector[1] = State.another_region_A;
+	}
+
+	public void exit() {
+		switch (stateVector[0]) {
+			case main_region_A :
+				nextStateIndex = 0;
+				stateVector[0] = State.$NullState$;
+				break;
+
+			case main_region_B :
+				nextStateIndex = 0;
+				stateVector[0] = State.$NullState$;
+				break;
+
+			case main_region_C :
+				nextStateIndex = 0;
+				stateVector[0] = State.$NullState$;
+				break;
+
+			case main_region_D :
+				nextStateIndex = 0;
+				stateVector[0] = State.$NullState$;
+				break;
+
+			default :
+				break;
+		}
+
+		switch (stateVector[1]) {
+			case another_region_A :
+				nextStateIndex = 1;
+				stateVector[1] = State.$NullState$;
+				break;
+
+			case another_region_B :
+				nextStateIndex = 1;
+				stateVector[1] = State.$NullState$;
+				break;
+
+			case another_region_C :
+				nextStateIndex = 1;
+				stateVector[1] = State.$NullState$;
+				break;
+
+			case another_region_D :
+				nextStateIndex = 1;
+				stateVector[1] = State.$NullState$;
+				break;
+
+			default :
+				break;
+		}
+
+		exitAction();
+	}
+
+	/**
+	 * This method resets the incoming events (time events included).
+	 */
+	protected void clearEvents() {
+
+	}
+
+	/**
+	 * This method resets the outgoing events.
+	 */
+	protected void clearOutEvents() {
+	}
+
+	/**
+	 * Returns true if the given state is currently active otherwise false.
+	 */
+	public boolean isStateActive(State state) {
+		switch (state) {
+			case main_region_A :
+				return stateVector[0] == State.main_region_A;
+			case main_region_B :
+				return stateVector[0] == State.main_region_B;
+			case main_region_C :
+				return stateVector[0] == State.main_region_C;
+			case main_region_D :
+				return stateVector[0] == State.main_region_D;
+			case another_region_A :
+				return stateVector[1] == State.another_region_A;
+			case another_region_B :
+				return stateVector[1] == State.another_region_B;
+			case another_region_C :
+				return stateVector[1] == State.another_region_C;
+			case another_region_D :
+				return stateVector[1] == State.another_region_D;
+			default :
+				return false;
+		}
+	}
+
+	public SCInterface getSCInterface() {
+		return sCInterface;
+	}
+
+	/* Entry action for statechart 'OperationsWithoutBraces'. */
+	private void entryAction() {
+	}
+
+	/* Exit action for state 'OperationsWithoutBraces'. */
+	private void exitAction() {
+	}
+
+	/* The reactions of state A. */
+	private void reactMain_region_A() {
+		if ((true) && !sCInterface.operationCallback.myBoolOp()) {
+			nextStateIndex = 0;
+			stateVector[0] = State.$NullState$;
+
+			nextStateIndex = 0;
+			stateVector[0] = State.main_region_B;
+		}
+	}
+
+	/* The reactions of state B. */
+	private void reactMain_region_B() {
+		if ((true) && sCInterface.operationCallback.myIntOp() == 0) {
+			nextStateIndex = 0;
+			stateVector[0] = State.$NullState$;
+
+			nextStateIndex = 0;
+			stateVector[0] = State.main_region_C;
+		}
+	}
+
+	/* The reactions of state C. */
+	private void reactMain_region_C() {
+		if ((true) && sCInterface.operationCallback.myRealOp() == 0.0) {
+			nextStateIndex = 0;
+			stateVector[0] = State.$NullState$;
+
+			nextStateIndex = 0;
+			stateVector[0] = State.main_region_D;
+		}
+	}
+
+	/* The reactions of state D. */
+	private void reactMain_region_D() {
+	}
+
+	/* The reactions of state A. */
+	private void reactAnother_region_A() {
+		if ((true) && !sCInterface.operationCallback.myBoolOp()) {
+			nextStateIndex = 1;
+			stateVector[1] = State.$NullState$;
+
+			nextStateIndex = 1;
+			stateVector[1] = State.another_region_B;
+		}
+	}
+
+	/* The reactions of state B. */
+	private void reactAnother_region_B() {
+		if ((true) && sCInterface.operationCallback.myIntOp() == 0) {
+			nextStateIndex = 1;
+			stateVector[1] = State.$NullState$;
+
+			nextStateIndex = 1;
+			stateVector[1] = State.another_region_C;
+		}
+	}
+
+	/* The reactions of state C. */
+	private void reactAnother_region_C() {
+		if ((true) && sCInterface.operationCallback.myRealOp() == 0.0) {
+			nextStateIndex = 1;
+			stateVector[1] = State.$NullState$;
+
+			nextStateIndex = 1;
+			stateVector[1] = State.another_region_D;
+		}
+	}
+
+	/* The reactions of state D. */
+	private void reactAnother_region_D() {
+	}
+
+	public void runCycle() {
+
+		clearOutEvents();
+
+		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
+
+			switch (stateVector[nextStateIndex]) {
+				case main_region_A :
+					reactMain_region_A();
+					break;
+				case main_region_B :
+					reactMain_region_B();
+					break;
+				case main_region_C :
+					reactMain_region_C();
+					break;
+				case main_region_D :
+					reactMain_region_D();
+					break;
+				case another_region_A :
+					reactAnother_region_A();
+					break;
+				case another_region_B :
+					reactAnother_region_B();
+					break;
+				case another_region_C :
+					reactAnother_region_C();
+					break;
+				case another_region_D :
+					reactAnother_region_D();
+					break;
+				default :
+					// $NullState$
+			}
+		}
+
+		clearEvents();
+	}
+}

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

@@ -16,7 +16,7 @@ import org.junit.runners.Suite.SuiteClasses;
 @RunWith(Suite.class)
 @SuiteClasses({AlwaysOncycleTest.class, AssignmentAsExpressionTest.class,
 		BitExpressionsTest.class, BooleanExpressionsTest.class,
-		CastExpressionsTest.class, ChoiceTest.class, 
+		CastExpressionsTest.class, ChoiceTest.class, CKeywordsTest.class,
 		ConditionalExpressionTest.class,
 		DeclarationsTest.class, DeepEntryTest.class, DeepHistoryTest.class,
 		DynamicChoiceTest.class, EmptyTransitionTest.class,
@@ -28,8 +28,9 @@ import org.junit.runners.Suite.SuiteClasses;
 		InEventLifeCycleTest.class, IntegerExpressionsTest.class,
 		InternalEventLifeCycleTest.class, LocalReactionsTest.class,
 		LogicalAndTestsTest.class, LogicalOrTestsTest.class,
-		NamedInterfaceAccessTest.class, OutEventLifeCycleTest.class,
-		ParenthesisTest.class, PriorityValuesTest.class, RaiseEventTest.class,
+		NamedInterfaceAccessTest.class, OperationsWithoutBracesTest.class,
+		OutEventLifeCycleTest.class, ParenthesisTest.class,
+		PriorityValuesTest.class, RaiseEventTest.class,
 		SameNameDifferentRegionTest.class, ShallowHistoryTest.class,
 		ShallowHistoryWithDeepEntryTest.class, SimpleEventTest.class,
 		StatechartLocalReactionsTest.class, SimpleHierachyTest.class,

+ 54 - 0
test-plugins/org.yakindu.sct.generator.java.test/test-gen/org/yakindu/sct/generator/java/test/OperationsWithoutBracesTest.java

@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2015 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.operationswithoutbraces.OperationsWithoutBracesStatemachine;
+import org.yakindu.scr.operationswithoutbraces.OperationsWithoutBracesStatemachine.State;
+/**
+ *  Unit TestCase for OperationsWithoutBraces
+ */
+@SuppressWarnings("all")
+public class OperationsWithoutBracesTest {
+
+	private OperationsWithoutBracesStatemachine statemachine;
+
+	@Before
+	public void setUp() {
+		statemachine = new OperationsWithoutBracesStatemachine();
+		statemachine.init();
+	}
+
+	@After
+	public void tearDown() {
+		statemachine = null;
+	}
+
+	@Test
+	public void testOperationsWithoutBracesTest() {
+		statemachine.enter();
+		assertTrue(statemachine.isStateActive(State.main_region_A));
+		assertTrue(statemachine.isStateActive(State.another_region_A));
+		statemachine.runCycle();
+		assertTrue(statemachine.isStateActive(State.main_region_B));
+		assertTrue(statemachine.isStateActive(State.another_region_B));
+		statemachine.runCycle();
+		assertTrue(statemachine.isStateActive(State.main_region_C));
+		assertTrue(statemachine.isStateActive(State.another_region_C));
+		statemachine.runCycle();
+		assertTrue(statemachine.isStateActive(State.main_region_D));
+		assertTrue(statemachine.isStateActive(State.another_region_D));
+	}
+}

+ 9 - 0
test-plugins/org.yakindu.sct.simulation.core.sexec.test/model/test.sgen

@@ -273,6 +273,15 @@ GeneratorModel for sctunit::interpreter {
 		}			
 	}
 	
+	test OperationsWithoutBraces{
+		
+		feature Outlet{ 
+			targetProject = "org.yakindu.sct.simulation.core.sexec.test" 
+			targetFolder = "test-gen"			
+		}	
+		
+	}	
+	
 	test OutEventLifeCycle{
 		
 		feature Outlet{ 

+ 3 - 2
test-plugins/org.yakindu.sct.simulation.core.sexec.test/test-gen/org/yakindu/sct/simulation/core/sexec/test/AllTestsTest.java

@@ -29,8 +29,9 @@ import org.junit.runners.Suite.SuiteClasses;
 		InEventLifeCycleTest.class, IntegerExpressionsTest.class,
 		InternalEventLifeCycleTest.class, LocalReactionsTest.class,
 		LogicalAndTestsTest.class, LogicalOrTestsTest.class,
-		NamedInterfaceAccessTest.class, OutEventLifeCycleTest.class,
-		ParenthesisTest.class, PriorityValuesTest.class, RaiseEventTest.class,
+		NamedInterfaceAccessTest.class, OperationsWithoutBracesTest.class,
+		OutEventLifeCycleTest.class, ParenthesisTest.class,
+		PriorityValuesTest.class, RaiseEventTest.class,
 		SameNameDifferentRegionTest.class, ShallowHistoryTest.class,
 		ShallowHistoryWithDeepEntryTest.class, SimpleEventTest.class,
 		StatechartLocalReactionsTest.class, SimpleHierachyTest.class,

+ 51 - 0
test-plugins/org.yakindu.sct.simulation.core.sexec.test/test-gen/org/yakindu/sct/simulation/core/sexec/test/OperationsWithoutBracesTest.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2015 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.simulation.core.sexec.test;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.yakindu.sct.model.sexec.ExecutionFlow;
+import org.yakindu.sct.model.sexec.interpreter.test.util.AbstractExecutionFlowTest;
+import org.yakindu.sct.model.sexec.interpreter.test.util.SExecInjectionProvider;
+import org.yakindu.sct.test.models.SCTUnitTestModels;
+import com.google.inject.Inject;
+import static org.junit.Assert.assertTrue;
+/**
+ *  Unit TestCase for OperationsWithoutBraces
+ */
+@SuppressWarnings("all")
+@RunWith(XtextRunner.class)
+@InjectWith(SExecInjectionProvider.class)
+public class OperationsWithoutBracesTest extends AbstractExecutionFlowTest {
+	@Before
+	public void setup() throws Exception {
+		ExecutionFlow flow = models
+				.loadExecutionFlowFromResource("OperationsWithoutBraces.sct");
+		initInterpreter(flow);
+	}
+	@Test
+	public void OperationsWithoutBracesTest() throws Exception {
+		interpreter.enter();
+		assertTrue(isActive("A"));
+		assertTrue(isActive("A"));
+		interpreter.runCycle();
+		assertTrue(isActive("B"));
+		assertTrue(isActive("B"));
+		interpreter.runCycle();
+		assertTrue(isActive("C"));
+		assertTrue(isActive("C"));
+		interpreter.runCycle();
+		assertTrue(isActive("D"));
+		assertTrue(isActive("D"));
+	}
+}

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

@@ -17,6 +17,7 @@ encoding//testmodels/SCTUnit/InEventLifeCycle.sct=UTF-8
 encoding//testmodels/SCTUnit/InternalEventLifeCycle.sct=UTF-8
 encoding//testmodels/SCTUnit/LocalReactions.sct=UTF-8
 encoding//testmodels/SCTUnit/LogicalAnd.sct=UTF-8
+encoding//testmodels/SCTUnit/OperationsWithoutBraces.sct=UTF-8
 encoding//testmodels/SCTUnit/OutEventLifeCycle.sct=UTF-8
 encoding//testmodels/SCTUnit/PerformanceTest.sct=UTF-8
 encoding//testmodels/SCTUnit/STextKeywordsInStatesAndRegions.sct=UTF-8

+ 295 - 0
test-plugins/org.yakindu.sct.test.models/testmodels/SCTUnit/OperationsWithoutBraces.sct

@@ -0,0 +1,295 @@
+<?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="_q84ncKViEeSQle4cTwdamg" specification="interface:&#xD;&#xA;operation myBoolOp() : boolean&#xD;&#xA;operation myIntOp() : integer&#xD;&#xA;operation myRealOp() : real" name="OperationsWithoutBraces">
+    <regions xmi:id="_q84nc6ViEeSQle4cTwdamg" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_q85OhqViEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_q87DtaViEeSQle4cTwdamg" target="_q851l6ViEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_q851l6ViEeSQle4cTwdamg" name="A" incomingTransitions="_q87DtaViEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_B1xqwKVjEeSQle4cTwdamg" specification="always [!myBoolOp]" target="_-TWs4KViEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_-TWs4KViEeSQle4cTwdamg" name="B" incomingTransitions="_B1xqwKVjEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_CF4jUKVjEeSQle4cTwdamg" specification="always[myIntOp == 0]" target="_-le-sKViEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_-le-sKViEeSQle4cTwdamg" name="C" incomingTransitions="_CF4jUKVjEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_CYadwKVjEeSQle4cTwdamg" specification="always [myRealOp == 0.0]" target="_BesAcKVjEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_BesAcKVjEeSQle4cTwdamg" name="D" incomingTransitions="_CYadwKVjEeSQle4cTwdamg"/>
+    </regions>
+    <regions xmi:id="_bwRd4KVjEeSQle4cTwdamg" name="another region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_d0cVEKVjEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_d0cVEaVjEeSQle4cTwdamg" target="_d0cVEqVjEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_d0cVEqVjEeSQle4cTwdamg" name="A" incomingTransitions="_d0cVEaVjEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_d0cVFaVjEeSQle4cTwdamg" specification="always [!myBoolOp()]" target="_d0djMKVjEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_d0djMKVjEeSQle4cTwdamg" name="B" incomingTransitions="_d0cVFaVjEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_d0djM6VjEeSQle4cTwdamg" specification="always[myIntOp() == 0]" target="_d0exUKVjEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_d0exUKVjEeSQle4cTwdamg" name="C" incomingTransitions="_d0djM6VjEeSQle4cTwdamg">
+        <outgoingTransitions xmi:id="_d0exU6VjEeSQle4cTwdamg" specification="always [myRealOp() == 0.0]" target="_d0f_cKVjEeSQle4cTwdamg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_d0f_cKVjEeSQle4cTwdamg" name="D" incomingTransitions="_d0exU6VjEeSQle4cTwdamg"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_q84ncaViEeSQle4cTwdamg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_q84ncKViEeSQle4cTwdamg" measurementUnit="Pixel">
+    <children xmi:id="_q84ndKViEeSQle4cTwdamg" type="Region" element="_q84nc6ViEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_q85OgKViEeSQle4cTwdamg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_q85OgaViEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_q85OgqViEeSQle4cTwdamg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_q85Og6ViEeSQle4cTwdamg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_q85Oh6ViEeSQle4cTwdamg" type="Entry" element="_q85OhqViEeSQle4cTwdamg">
+          <children xmi:id="_q851kKViEeSQle4cTwdamg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_q851k6ViEeSQle4cTwdamg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_q851lKViEeSQle4cTwdamg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_q851laViEeSQle4cTwdamg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_q851kaViEeSQle4cTwdamg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q851kqViEeSQle4cTwdamg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_q85OiKViEeSQle4cTwdamg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q851lqViEeSQle4cTwdamg" x="70" y="20"/>
+        </children>
+        <children xmi:id="_q86coKViEeSQle4cTwdamg" type="State" element="_q851l6ViEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_q86cpKViEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_q86cpaViEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_q86cpqViEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_q86cp6ViEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_q87DsKViEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q87DsaViEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_q87DsqViEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_q86coaViEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_q86coqViEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_q87Ds6ViEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q87DtKViEeSQle4cTwdamg" x="264" y="12" width="71"/>
+        </children>
+        <children xmi:id="_-TZwMKViEeSQle4cTwdamg" type="State" element="_-TWs4KViEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_-TaXQKViEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_-TaXQaViEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_-TaXQqViEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_-TaXQ6ViEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_-Ta-UKViEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_-Ta-UaViEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_-TblYKViEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_-TZwMaViEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_-TZwMqViEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_-TblYaViEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_-TZwM6ViEeSQle4cTwdamg" x="256" y="267" width="86"/>
+        </children>
+        <children xmi:id="_-lgz4KViEeSQle4cTwdamg" type="State" element="_-le-sKViEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_-liCAKViEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_-liCAaViEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_-liCAqViEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_-lipEKViEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_-lipEaViEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_-lipEqViEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_-ljQIKViEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_-lgz4aViEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_-lha8KViEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_-ljQIaViEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_-lha8aViEeSQle4cTwdamg" x="9" y="267" width="81"/>
+        </children>
+        <children xmi:id="_BesngKVjEeSQle4cTwdamg" type="State" element="_BesAcKVjEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_BetOkKVjEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_BetOkaVjEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_BetOkqVjEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_BetOk6VjEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_BetOlKVjEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_BetOlaVjEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_BetOlqVjEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_BesngaVjEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_BesngqVjEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_BetOl6VjEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Besng6VjEeSQle4cTwdamg" x="8" y="500" width="83"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q85OhKViEeSQle4cTwdamg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_q84ndaViEeSQle4cTwdamg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q85OhaViEeSQle4cTwdamg" x="260" y="10" width="466" height="701"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_q87qxqViEeSQle4cTwdamg" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_q88R0KViEeSQle4cTwdamg" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_q88R0aViEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_q88R0qViEeSQle4cTwdamg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_q88R06ViEeSQle4cTwdamg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q88R1KViEeSQle4cTwdamg"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_q88R1aViEeSQle4cTwdamg" x="5" y="10" width="246" height="400"/>
+    </children>
+    <children xmi:id="_bwTTEKVjEeSQle4cTwdamg" type="Region" element="_bwRd4KVjEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_bwTTE6VjEeSQle4cTwdamg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_bwTTFKVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_bwT6IKVjEeSQle4cTwdamg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_bwT6IaVjEeSQle4cTwdamg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_d0af4KVjEeSQle4cTwdamg" type="Entry" element="_d0cVEKVjEeSQle4cTwdamg">
+          <children xmi:id="_d0af4aVjEeSQle4cTwdamg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_d0af4qVjEeSQle4cTwdamg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_d0af46VjEeSQle4cTwdamg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_d0af5KVjEeSQle4cTwdamg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_d0af5aVjEeSQle4cTwdamg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0af5qVjEeSQle4cTwdamg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_d0af56VjEeSQle4cTwdamg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0af6KVjEeSQle4cTwdamg" x="80" y="30"/>
+        </children>
+        <children xmi:id="_d0bG8KVjEeSQle4cTwdamg" type="State" element="_d0cVEqVjEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_d0bG8aVjEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_d0bG8qVjEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_d0bG86VjEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0bG9KVjEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_d0bG9aVjEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0bG9qVjEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0bG96VjEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_d0bG-KVjEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_d0bG-aVjEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_d0bG-qVjEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0bG-6VjEeSQle4cTwdamg" x="274" y="22" width="71"/>
+        </children>
+        <children xmi:id="_d0bG_KVjEeSQle4cTwdamg" type="State" element="_d0djMKVjEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_d0bG_aVjEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_d0bG_qVjEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_d0bG_6VjEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0bHAKVjEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_d0bHAaVjEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0bHAqVjEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0bHA6VjEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_d0bHBKVjEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_d0bHBaVjEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_d0bHBqVjEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0bHB6VjEeSQle4cTwdamg" x="266" y="277" width="86"/>
+        </children>
+        <children xmi:id="_d0bHCKVjEeSQle4cTwdamg" type="State" element="_d0exUKVjEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_d0bHCaVjEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_d0bHCqVjEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_d0bHC6VjEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0bHDKVjEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_d0bHDaVjEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0bHDqVjEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0bHD6VjEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_d0bHEKVjEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_d0bHEaVjEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_d0bHEqVjEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0bHE6VjEeSQle4cTwdamg" x="19" y="277" width="81"/>
+        </children>
+        <children xmi:id="_d0buAKVjEeSQle4cTwdamg" type="State" element="_d0f_cKVjEeSQle4cTwdamg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_d0buAaVjEeSQle4cTwdamg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_d0buAqVjEeSQle4cTwdamg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_d0buA6VjEeSQle4cTwdamg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0buBKVjEeSQle4cTwdamg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_d0buBaVjEeSQle4cTwdamg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0buBqVjEeSQle4cTwdamg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_d0buB6VjEeSQle4cTwdamg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_d0buCKVjEeSQle4cTwdamg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_d0buCaVjEeSQle4cTwdamg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_d0buCqVjEeSQle4cTwdamg" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_d0buC6VjEeSQle4cTwdamg" x="18" y="510" width="83"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_bwT6IqVjEeSQle4cTwdamg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_bwTTEaVjEeSQle4cTwdamg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_bwTTEqVjEeSQle4cTwdamg" x="745" y="10" width="576" height="701"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_q84ncqViEeSQle4cTwdamg"/>
+    <edges xmi:id="_q87DtqViEeSQle4cTwdamg" type="Transition" element="_q87DtaViEeSQle4cTwdamg" source="_q85Oh6ViEeSQle4cTwdamg" target="_q86coKViEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_q87qw6ViEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_q87qxKViEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_q87qxaViEeSQle4cTwdamg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_q87qwKViEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_q87qwqViEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_q87qwaViEeSQle4cTwdamg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_B10uEKVjEeSQle4cTwdamg" type="Transition" element="_B1xqwKVjEeSQle4cTwdamg" source="_q86coKViEeSQle4cTwdamg" target="_-TZwMKViEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_B11VIKVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_B11VIaVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_B11VIqVjEeSQle4cTwdamg" x="-89" y="-67"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_B10uEaVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_B10uE6VjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_B10uEqVjEeSQle4cTwdamg" points="[9, 24, 3, -88]$[9, 101, 3, -11]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_B18C0KVjEeSQle4cTwdamg" id="(0.48,0.24528301886792453)"/>
+    </edges>
+    <edges xmi:id="_CF7moKVjEeSQle4cTwdamg" type="Transition" element="_CF4jUKVjEeSQle4cTwdamg" source="_-TZwMKViEeSQle4cTwdamg" target="_-lgz4KViEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_CF8NsKVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_CF8NsaVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_CF8NsqVjEeSQle4cTwdamg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_CF7moaVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_CF7mo6VjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_CF7moqVjEeSQle4cTwdamg" points="[-35, -2, 185, 8]$[-222, -34, -2, -24]"/>
+    </edges>
+    <edges xmi:id="_CYdhEKVjEeSQle4cTwdamg" type="Transition" element="_CYadwKVjEeSQle4cTwdamg" source="_-lgz4KViEeSQle4cTwdamg" target="_BesngKVjEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_CYeIIaVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_CYeIIqVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_CYevMKVjEeSQle4cTwdamg" x="-58" y="-87"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_CYdhEaVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_CYeIIKVjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_CYdhEqVjEeSQle4cTwdamg" points="[8, 24, 0, -145]$[8, 145, 0, -24]"/>
+    </edges>
+    <edges xmi:id="_d0gmgKVjEeSQle4cTwdamg" type="Transition" element="_d0cVEaVjEeSQle4cTwdamg" source="_d0af4KVjEeSQle4cTwdamg" target="_d0bG8KVjEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_d0gmgaVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_d0gmgqVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_d0gmg6VjEeSQle4cTwdamg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_d0gmhKVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_d0gmhaVjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_d0gmhqVjEeSQle4cTwdamg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_d0szwKVjEeSQle4cTwdamg" type="Transition" element="_d0exU6VjEeSQle4cTwdamg" source="_d0bHCKVjEeSQle4cTwdamg" target="_d0buAKVjEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_d0ta0aVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_d0ta0qVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_d0ta06VjEeSQle4cTwdamg" x="-73" y="-92"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_d0szwaVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_d0ta0KVjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_d0szwqVjEeSQle4cTwdamg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_d0uB4KVjEeSQle4cTwdamg" type="Transition" element="_d0cVFaVjEeSQle4cTwdamg" source="_d0bG8KVjEeSQle4cTwdamg" target="_d0bG_KVjEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_d0uB5KVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_d0uB5aVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_d0uB5qVjEeSQle4cTwdamg" x="-89" y="-67"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_d0uB4aVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_d0uB46VjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_d0uB4qVjEeSQle4cTwdamg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_d0vQAKVjEeSQle4cTwdamg" type="Transition" element="_d0djM6VjEeSQle4cTwdamg" source="_d0bG_KVjEeSQle4cTwdamg" target="_d0bHCKVjEeSQle4cTwdamg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_d0vQBKVjEeSQle4cTwdamg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_d0vQBaVjEeSQle4cTwdamg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_d0vQBqVjEeSQle4cTwdamg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_d0vQAaVjEeSQle4cTwdamg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_d0vQA6VjEeSQle4cTwdamg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_d0vQAqVjEeSQle4cTwdamg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

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

@@ -31,6 +31,7 @@ testsuite AllTests {
 	LogicalAndTests, 
 	LogicalOrTests,
 	NamedInterfaceAccess,
+	OperationsWithoutBraces,
 	OutEventLifeCycle,
 	Parenthesis,
 	PriorityValues,

+ 26 - 0
test-plugins/org.yakindu.sct.test.models/tests/OperationsWithoutBraces.sctunit

@@ -0,0 +1,26 @@
+
+testgroup OperationsWithoutBraces for statechart OperationsWithoutBraces{
+	test OperationsWithoutBracesTest { 
+		enter
+		assert active (OperationsWithoutBraces.main_region.A)
+		assert active (OperationsWithoutBraces.another_region.A)
+		
+		cycle
+		assert active (OperationsWithoutBraces.main_region.B)
+		assert active (OperationsWithoutBraces.another_region.B)
+		 
+		cycle
+		
+		assert active (OperationsWithoutBraces.main_region.C)
+		assert active (OperationsWithoutBraces.another_region.C) 
+		
+		cycle
+		
+		assert active (OperationsWithoutBraces.main_region.D)
+		assert active (OperationsWithoutBraces.another_region.D)
+
+				 
+		 
+	} 
+}
+