Browse Source

Xpand-nature added
First Test for TypeAnalyzer
Helper Classes moved to testpackages

benjamin.schwertfeger@gmail.com 14 years ago
parent
commit
26aa71f401
28 changed files with 825 additions and 603 deletions
  1. 34 28
      plugins/org.yakindu.sct.generator.core/.project
  2. 11 8
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/ExecutionModelCoreExtensions.ext
  3. 6 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/TypeAnalyzerExtensions.ext
  4. 1 0
      plugins/org.yakindu.sct.model.sgraph.test/META-INF/MANIFEST.MF
  5. 72 0
      plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/util/SgraphTestFactory.java
  6. 7 0
      test-plugins/org.yakindu.sct.generator.core.test/.classpath
  7. 34 0
      test-plugins/org.yakindu.sct.generator.core.test/.project
  8. 8 0
      test-plugins/org.yakindu.sct.generator.core.test/.settings/org.eclipse.jdt.core.prefs
  9. 13 0
      test-plugins/org.yakindu.sct.generator.core.test/META-INF/MANIFEST.MF
  10. 4 0
      test-plugins/org.yakindu.sct.generator.core.test/build.properties
  11. 72 0
      test-plugins/org.yakindu.sct.generator.core.test/src/org/yakindu/sct/generator/core/extensions/ExecutionModelCoreExtensionsTest.java
  12. 54 0
      test-plugins/org.yakindu.sct.generator.core.test/src/org/yakindu/sct/generator/core/extensions/TypeAnalyzerExtensionsTest.java
  13. 3 1
      test-plugins/org.yakindu.sct.model.sexec.test/META-INF/MANIFEST.MF
  14. 2 33
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/FlowOptimizer_ExecutionEntryTest.java
  15. 9 20
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/HistoryTest.java
  16. 8 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/LocalReactionTest.java
  17. 14 3
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHierarchyTest.java
  18. 9 16
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHistoryTest.java
  19. 15 5
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerOrthogonalityTest.java
  20. 9 9
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerSCTest.java
  21. 15 15
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateReactionTest.java
  22. 18 18
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateTest.java
  23. 95 71
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateVectorTest.java
  24. 0 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerTest.java
  25. 13 13
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencertDeclarationsTest.java
  26. 3 334
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SCTTestUtil.java
  27. 7 23
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SelfTransitionTest.java
  28. 289 0
      test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/util/StextTestFactory.java

+ 34 - 28
plugins/org.yakindu.sct.generator.core/.project

@@ -1,28 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.yakindu.sct.generator.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.yakindu.sct.generator.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtend.shared.ui.xtendBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtend.shared.ui.xtendXPandNature</nature>
+	</natures>
+</projectDescription>

+ 11 - 8
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/ExecutionModelCoreExtensions.ext

@@ -10,6 +10,9 @@
 import stext;
 import sexec;
 import sgraph;
+import types;
+
+extension org::yakindu::sct::generator::core::extensions::TypeAnalyzerExtensions;
 
 List getDeclaredVariables(ExecutionFlow flow) : flow.scopes.declarations.typeSelect(VariableDefinition);
 
@@ -17,15 +20,15 @@ getInterfaceScope(ExecutionFlow this) : scopes.typeSelect(InterfaceScope);
 getInterfaceScopeDeclarations(ExecutionFlow this) : getInterfaceScope().declarations;
 getInterfaceScopeVariables(ExecutionFlow this) : getInterfaceScopeDeclarations().typeSelect(VariableDefinition);
 getInterfaceScopeEvents(ExecutionFlow this) : getInterfaceScopeDeclarations().typeSelect(EventDefinition);
-getInterfaceScopeVoidEvents(ExecutionFlow this) : getInterfaceScopeEvents().select(e|e.type==Type::void);
-getInterfaceScopeValuedEvents(ExecutionFlow this) : getInterfaceScopeEvents().select(e|e.type!=Type::void);
+getInterfaceScopeVoidEvents(ExecutionFlow this) : getInterfaceScopeEvents().select(e|e.type.isVoid());
+getInterfaceScopeValuedEvents(ExecutionFlow this) : getInterfaceScopeEvents().select(e|!e.type.isVoid());
 
 getInternalScope(ExecutionFlow this) : scopes.typeSelect(InternalScope);
 getInternalScopeDeclarations(ExecutionFlow this) : getInternalScope().declarations;
 getInternalScopeVariables(ExecutionFlow this) :	getInternalScopeDeclarations().typeSelect(VariableDefinition);
 getInternalScopeEvents(ExecutionFlow this) : getInternalScopeDeclarations().typeSelect(EventDefinition);
-getInternalScopeVoidEvents(ExecutionFlow this) :getInternalScopeEvents().select(e|e.type==Type::void);
-getInternalScopeValuedEvents(ExecutionFlow this) : getInternalScopeEvents().select(e|e.type!=Type::void);
+getInternalScopeVoidEvents(ExecutionFlow this) :getInternalScopeEvents().select(e|e.type.isVoid());
+getInternalScopeValuedEvents(ExecutionFlow this) : getInternalScopeEvents().select(e|!e.type.isVoid());
 
 getTimeEvents(ExecutionFlow this) : scopes.typeSelect(Scope).declarations.typeSelect(TimeEvent);
 
@@ -36,13 +39,13 @@ boolean hasOutgoingEvents(Scope this) :
 	!declarations.typeSelect(EventDefinition).select(event|event.direction == Direction::OUT).isEmpty;
 
 boolean hasOutgoingVoidEvents(Scope this) :
-	!declarations.typeSelect(EventDefinition).select(event|event.direction == Direction::OUT).select(event|event.type == Type::void).isEmpty;
+	!declarations.typeSelect(EventDefinition).select(event|event.direction == Direction::OUT).select(event|event.type.isVoid()).isEmpty;
 	
 boolean hasOutgoingValuedEvents(Scope this) :
-	!declarations.typeSelect(EventDefinition).select(event|event.direction == Direction::OUT).select(event|event.type != Type::void).isEmpty;
+	!declarations.typeSelect(EventDefinition).select(event|event.direction == Direction::OUT).select(event|!event.type.isVoid()).isEmpty;
 
 boolean hasEvents(Scope this) :
-	!declarations.typeSelect(EventDefinition).select(event|event.type == Type::void).isEmpty;
+	!declarations.typeSelect(EventDefinition).select(event|event.type.isVoid()).isEmpty;
 	
 boolean hasValuedEvents(Scope this) :
-	!declarations.typeSelect(EventDefinition).select(event|event.type != Type::void).isEmpty;
+	!declarations.typeSelect(EventDefinition).select(event|!event.type.isVoid()).isEmpty;

+ 6 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/TypeAnalyzerExtensions.ext

@@ -20,3 +20,9 @@ boolean isBoolean(Type t):
 
 boolean isString(Type t):
 	JAVA org.yakindu.sct.generator.core.extensions.TypeAnalyzerExtensions.isString(org.yakindu.base.types.Type);
+
+boolean isVoid(Type t):
+	t.name == null || t.name == "void";
+
+boolean isVoid(Void v):
+	true;

+ 1 - 0
plugins/org.yakindu.sct.model.sgraph.test/META-INF/MANIFEST.MF

@@ -12,3 +12,4 @@ Require-Bundle: org.yakindu.sct.model.sgraph;bundle-version="1.0.0",
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: YAKINDU
+Export-Package: org.yakindu.sct.model.sgraph.test.util

+ 72 - 0
plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/util/SgraphTestFactory.java

@@ -0,0 +1,72 @@
+package org.yakindu.sct.model.sgraph.test.util;
+
+import org.yakindu.sct.model.sgraph.Entry;
+import org.yakindu.sct.model.sgraph.EntryKind;
+import org.yakindu.sct.model.sgraph.FinalState;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.SGraphFactory;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.Vertex;
+import org.yakindu.sct.model.sgraph.impl.SGraphFactoryImpl;
+
+public class SgraphTestFactory extends SGraphFactoryImpl {
+	public static SgraphTestFactory eInstance = new SgraphTestFactory();
+
+	public static Statechart _createStatechart(String name) {
+		Statechart sc = SGraphFactory.eINSTANCE.createStatechart();
+		sc.setName(name);
+		return sc;
+	}
+
+	public static Region _createRegion(String name, Statechart sc) {
+		Region region = SGraphFactory.eINSTANCE.createRegion();
+		region.setName(name);
+		if (sc != null)
+			sc.getRegions().add(region);
+		return region;
+	}
+
+	public static Region _createRegion(String name, State state) {
+		Region region = SGraphFactory.eINSTANCE.createRegion();
+		region.setName(name);
+		if (state != null)
+			state.getRegions().add(region);
+		return region;
+	}
+
+	public static State _createState(String name, Region r) {
+		State state = SGraphFactory.eINSTANCE.createState();
+		state.setName(name);
+		if (r != null)
+			r.getVertices().add(state);
+		return state;
+	}
+
+	public static FinalState _createFinalState(Region r) {
+		FinalState state = SGraphFactory.eINSTANCE.createFinalState();
+		if (r != null)
+			r.getVertices().add(state);
+		return state;
+	}
+
+	public static Entry _createEntry(EntryKind kind, String name, Region r) {
+		Entry entry = SGraphFactory.eINSTANCE.createEntry();
+		if (kind != null)
+			entry.setKind(kind);
+		else
+			entry.setKind(EntryKind.INITIAL);
+		entry.setName(name);
+		if (r != null)
+			r.getVertices().add(entry);
+		return entry;
+	}
+
+	public static Transition _createTransition(Vertex source, Vertex target) {
+		Transition t = SGraphFactory.eINSTANCE.createTransition();
+		t.setSource(source);
+		t.setTarget(target);
+		return t;
+	}
+}

+ 7 - 0
test-plugins/org.yakindu.sct.generator.core.test/.classpath

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

+ 34 - 0
test-plugins/org.yakindu.sct.generator.core.test/.project

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.yakindu.sct.generator.core.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtend.shared.ui.xtendBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtend.shared.ui.xtendXPandNature</nature>
+	</natures>
+</projectDescription>

+ 8 - 0
test-plugins/org.yakindu.sct.generator.core.test/.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,8 @@
+#Sat Mar 31 12:40:24 BST 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6

+ 13 - 0
test-plugins/org.yakindu.sct.generator.core.test/META-INF/MANIFEST.MF

@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test
+Bundle-SymbolicName: org.yakindu.sct.generator.core.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.xtext.junit4;bundle-version="2.0.1",
+ org.yakindu.sct.model.sgraph;bundle-version="1.0.0",
+ org.yakindu.sct.model.stext;bundle-version="1.0.0",
+ org.junit;bundle-version="4.8.2",
+ org.yakindu.sct.generator.core;bundle-version="1.0.0",
+ org.yakindu.sct.model.stext.test;bundle-version="1.0.0",
+ org.yakindu.sct.model.sgraph.test;bundle-version="1.0.0"

+ 4 - 0
test-plugins/org.yakindu.sct.generator.core.test/build.properties

@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .

+ 72 - 0
test-plugins/org.yakindu.sct.generator.core.test/src/org/yakindu/sct/generator/core/extensions/ExecutionModelCoreExtensionsTest.java

@@ -0,0 +1,72 @@
+package org.yakindu.sct.generator.core.extensions;
+
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
+
+import static org.junit.Assert.*;
+import org.eclipse.xtend.XtendFacade;
+import org.eclipse.xtend.expression.ExecutionContext;
+import org.eclipse.xtend.expression.ExecutionContextImpl;
+import org.eclipse.xtend.expression.TypeSystemImpl;
+import org.eclipse.xtend.typesystem.emf.EmfMetaModel;
+import org.junit.Test;
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.types.TypesPackage;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.stext.stext.Direction;
+import org.yakindu.sct.model.stext.stext.EventDefinition;
+import org.yakindu.sct.model.stext.stext.InterfaceScope;
+import org.yakindu.sct.model.stext.stext.StextPackage;
+
+public class ExecutionModelCoreExtensionsTest {
+
+	private Object call(String methodName, Object... params) {
+
+		TypeSystemImpl ts = new TypeSystemImpl();
+		ts.registerMetaModel(new EmfMetaModel(BasePackage.eINSTANCE));
+		ts.registerMetaModel(new EmfMetaModel(TypesPackage.eINSTANCE));
+		ts.registerMetaModel(new EmfMetaModel(SGraphPackage.eINSTANCE));
+		ts.registerMetaModel(new EmfMetaModel(StextPackage.eINSTANCE));
+
+		ExecutionContext ctx = new ExecutionContextImpl(ts);
+		XtendFacade facade = XtendFacade
+				.create(ctx,
+						"org::yakindu::sct::generator::core::extensions::ExecutionModelCoreExtensions");
+		Object result = facade.call(methodName, params);
+		return result;
+	}
+
+	@Test
+	public void testHasOutgoingVoidEvents() {
+		InterfaceScope scope = _createInterfaceScope("if", null);
+
+		Object result = call("hasOutgoingVoidEvents", scope);
+		assertEquals(Boolean.FALSE, result);
+
+		EventDefinition eventDefinition = _createEventDefinition("e1", scope);
+		eventDefinition.setDirection(Direction.OUT);
+		result = call("hasOutgoingVoidEvents", scope);
+		assertEquals(Boolean.TRUE, result);
+
+		eventDefinition.setType(_createType("string"));
+		result = call("hasOutgoingVoidEvents", scope);
+		assertEquals(Boolean.FALSE, result);
+	}
+
+	@Test
+	public void testHasOutgoingValuedEvents() {
+		InterfaceScope scope = _createInterfaceScope("if", null);
+
+		Object result = call("hasOutgoingValuedEvents", scope);
+		assertEquals(Boolean.FALSE, result);
+
+		EventDefinition eventDefinition = _createEventDefinition("e1", scope);
+		eventDefinition.setDirection(Direction.OUT);
+		result = call("hasOutgoingValuedEvents", scope);
+		assertEquals(Boolean.FALSE, result);
+
+		eventDefinition.setType(_createType("string"));
+		result = call("hasOutgoingValuedEvents", scope);
+		assertEquals(Boolean.TRUE, result);
+	}
+
+}

+ 54 - 0
test-plugins/org.yakindu.sct.generator.core.test/src/org/yakindu/sct/generator/core/extensions/TypeAnalyzerExtensionsTest.java

@@ -0,0 +1,54 @@
+package org.yakindu.sct.generator.core.extensions;
+
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
+
+import static org.junit.Assert.*;
+import org.eclipse.xtend.XtendFacade;
+import org.eclipse.xtend.expression.ExecutionContext;
+import org.eclipse.xtend.expression.ExecutionContextImpl;
+import org.eclipse.xtend.expression.TypeSystemImpl;
+import org.eclipse.xtend.typesystem.emf.EmfMetaModel;
+import org.junit.Test;
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.types.Type;
+import org.yakindu.base.types.TypesPackage;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.stext.stext.StextPackage;
+
+public class TypeAnalyzerExtensionsTest {
+
+	private Object call(String methodName, Object... params) {
+
+		TypeSystemImpl ts = new TypeSystemImpl();
+		ts.registerMetaModel(new EmfMetaModel(BasePackage.eINSTANCE));
+		ts.registerMetaModel(new EmfMetaModel(TypesPackage.eINSTANCE));
+		ts.registerMetaModel(new EmfMetaModel(SGraphPackage.eINSTANCE));
+		ts.registerMetaModel(new EmfMetaModel(StextPackage.eINSTANCE));
+
+		ExecutionContext ctx = new ExecutionContextImpl(ts);
+		XtendFacade facade = XtendFacade
+				.create(ctx,
+						"org::yakindu::sct::generator::core::extensions::TypeAnalyzerExtensions");
+		Object result = facade.call(methodName, params);
+		return result;
+	}
+
+	@Test
+	public void testIsVoid() {
+		Object result = call("isVoid", new Object[] { null });
+		assertEquals(Boolean.TRUE, result);
+
+		Type type = _createType(null);
+		result = call("isVoid", type);
+		assertEquals(Boolean.TRUE, result);
+
+		type.setName("void");
+		result = call("isVoid", type);
+		assertEquals(Boolean.TRUE, result);
+
+		type.setName("String");
+		result = call("isVoid", type);
+		assertEquals(Boolean.FALSE, result);
+	}
+
+}

+ 3 - 1
test-plugins/org.yakindu.sct.model.sexec.test/META-INF/MANIFEST.MF

@@ -18,5 +18,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.xtext.xtend2;bundle-version="2.0.0",
  org.eclipse.xtext.xbase.lib;bundle-version="2.0.0",
  org.eclipse.xtext.xtend2.lib;bundle-version="2.0.0",
- org.yakindu.base.types;bundle-version="1.0.0"
+ org.yakindu.base.types;bundle-version="1.0.0",
+ org.yakindu.sct.model.stext.test;bundle-version="1.0.0",
+ org.yakindu.sct.model.sgraph.test;bundle-version="1.0.0"
 Export-Package: org.yakindu.sct.model.sexec.transformation.test

+ 2 - 33
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/FlowOptimizer_ExecutionEntryTest.java

@@ -1,56 +1,25 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.fail;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
-import java.util.ArrayList;
-
-import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.Call;
-import org.yakindu.sct.model.sexec.ExecutionEntry;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
-import org.yakindu.sct.model.sexec.ExecutionNode;
-import org.yakindu.sct.model.sexec.ExecutionRegion;
-import org.yakindu.sct.model.sexec.ExecutionState;
-import org.yakindu.sct.model.sexec.HistoryEntry;
-import org.yakindu.sct.model.sexec.Reaction;
-import org.yakindu.sct.model.sexec.SaveHistory;
 import org.yakindu.sct.model.sexec.Sequence;
-import org.yakindu.sct.model.sexec.Step;
 import org.yakindu.sct.model.sexec.transformation.FlowOptimizer;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.MinimalTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.InitializingTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.OrthogonalFlatTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.SimpleFlatTSC;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.stext.stext.AssignmentOperator;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
 import com.google.inject.Inject;
 
 public class FlowOptimizer_ExecutionEntryTest extends ModelSequencerTest {

+ 9 - 20
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/HistoryTest.java

@@ -1,24 +1,18 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
-
-import java.util.ArrayList;
-
-import org.eclipse.emf.common.util.EList;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
+
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.ExecutionEntry;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -30,17 +24,12 @@ import org.yakindu.sct.model.sexec.Reaction;
 import org.yakindu.sct.model.sexec.SaveHistory;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.Step;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.MinimalTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.InitializingTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.OrthogonalFlatTSC;
 import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.SimpleFlatTSC;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.stext.stext.AssignmentOperator;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 

+ 8 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/LocalReactionTest.java

@@ -1,26 +1,29 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
-import static org.junit.Assert.*;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.flattenSequenceStepsAsList;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
 
 import java.util.List;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.CheckRef;
-import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.ExecutionState;
 import org.yakindu.sct.model.sexec.If;
 import org.yakindu.sct.model.sexec.Reaction;
 import org.yakindu.sct.model.sexec.Sequence;
-import org.yakindu.sct.model.sexec.StateCase;
 import org.yakindu.sct.model.sexec.StateSwitch;
 import org.yakindu.sct.model.sexec.Step;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.stext.stext.AssignmentOperator;
-import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.LocalReaction;
 import org.yakindu.sct.model.stext.stext.ReactionEffect;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;

+ 14 - 3
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHierarchyTest.java

@@ -1,10 +1,21 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
-import static org.junit.Assert.*;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createExitAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.junit.Test;
-import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.ExecutionState;
 import org.yakindu.sct.model.sexec.Reaction;

+ 9 - 16
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerHistoryTest.java

@@ -1,19 +1,17 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.eclipse.emf.common.util.EList;
 import org.junit.Test;
@@ -26,17 +24,12 @@ import org.yakindu.sct.model.sexec.Reaction;
 import org.yakindu.sct.model.sexec.SaveHistory;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.Step;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.MinimalTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.InitializingTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.OrthogonalFlatTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.SimpleFlatTSC;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.stext.stext.AssignmentOperator;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 

+ 15 - 5
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerOrthogonalityTest.java

@@ -1,18 +1,28 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
-import static org.junit.Assert.*;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.*;
-import static org.yakindu.sct.model.sexec.transformation.test.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findStateFullyQualified;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createExitAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.junit.Test;
-import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.ExecutionState;
 import org.yakindu.sct.model.sexec.Reaction;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.StateSwitch;
-import org.yakindu.sct.model.sexec.Step;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.Region;

+ 9 - 9
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerSCTest.java

@@ -4,14 +4,14 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
@@ -20,8 +20,8 @@ import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.Step;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.MinimalTSC;
 import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.InitializingTSC;
+import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.MinimalTSC;
 import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.OrthogonalFlatTSC;
 import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.SimpleFlatTSC;
 import org.yakindu.sct.model.sgraph.Entry;

+ 15 - 15
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateReactionTest.java

@@ -5,21 +5,21 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEventDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createLocalReaction;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createOncycleEventSpec;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createReactionTrigger;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegularEventSpec;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTimeEventSpec;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTimeTriggeredReaction;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createValue;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEventDefinition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createLocalReaction;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createOncycleEventSpec;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createReactionTrigger;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createRegularEventSpec;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createTimeEventSpec;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createTimeTriggeredReaction;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createValue;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.ExecutionFlow;

+ 18 - 18
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateTest.java

@@ -7,25 +7,25 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAction;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEventDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createExitAction;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createExitAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createFinalState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createLocalReaction;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createReactionEffect;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegularEventSpec;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createValue;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createFinalState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAction;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEntryAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEventDefinition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createExitAction;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createExitAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createLocalReaction;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createReactionEffect;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createRegularEventSpec;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createValue;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableAssignment;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import java.util.List;
 

+ 95 - 71
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateVectorTest.java

@@ -2,11 +2,11 @@ package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -22,42 +22,42 @@ import org.yakindu.sct.model.sgraph.Statechart;
 
 public class ModelSequencerStateVectorTest extends ModelSequencerTest {
 
-	
-
 	/**
-	 * The state vector descriptor of the ExecutionFlow must have an offset of 0 and a size that is 
-	 * the maximum orthogonality of the statechart.
+	 * The state vector descriptor of the ExecutionFlow must have an offset of 0
+	 * and a size that is the maximum orthogonality of the statechart.
 	 */
-	@Test public void testSCStateVectorFlatNonOrthopgonal() {
+	@Test
+	public void testSCStateVectorFlatNonOrthopgonal() {
 		SimpleFlatTSC tsc = new SimpleFlatTSC();
-		
+
 		ExecutionFlow flow = sequencer.transform(tsc.sc);
-		
+
 		assertNotNull(flow.getStateVector());
 		assertEquals(1, flow.getStateVector().getSize());
 		assertEquals(0, flow.getStateVector().getOffset());
 	}
 
 	/**
-	 * The state vector descriptor of the ExecutionFlow must have an offset of 0 and a size that is 
-	 * the maximum orthogonality of the statechart.
+	 * The state vector descriptor of the ExecutionFlow must have an offset of 0
+	 * and a size that is the maximum orthogonality of the statechart.
 	 */
-	@Test public void testSCStateVectorFlatOrthopgonal() {
+	@Test
+	public void testSCStateVectorFlatOrthopgonal() {
 		OrthogonalFlatTSC tsc = new OrthogonalFlatTSC();
-		
+
 		ExecutionFlow flow = sequencer.transform(tsc.sc);
-		
+
 		assertNotNull(flow.getStateVector());
 		assertEquals(2, flow.getStateVector().getSize());
 		assertEquals(0, flow.getStateVector().getOffset());
 	}
 
-	
 	/**
-	 * The state vector descriptor of the ExecutionFlow must have an offset of 0 and a size that is 
-	 * the maximum orthogonality of the statechart.
+	 * The state vector descriptor of the ExecutionFlow must have an offset of 0
+	 * and a size that is the maximum orthogonality of the statechart.
 	 */
-	@Test public void testSCStateVectorDeepNonOrthopgonal() {
+	@Test
+	public void testSCStateVectorDeepNonOrthopgonal() {
 		Statechart sc = _createStatechart("test");
 		Region r = _createRegion("r", sc);
 		_createState("s1", r);
@@ -70,33 +70,40 @@ public class ModelSequencerStateVectorTest extends ModelSequencerTest {
 		_createState("s2_2", s2_r);
 
 		ExecutionFlow flow = sequencer.transform(sc);
-		
+
 		assertNotNull(flow.getStateVector());
 		assertStateVector(0, 1, flow.getStateVector());
 
-		
-		assertStateVector(0, 1, getAssertedExState(flow, 0, "test.r.s1").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 1, "test.r.s2").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 2, "test.r.s2.r.s2_1").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 3, "test.r.s2.r.s2_1.r.s2_1_1").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 4, "test.r.s2.r.s2_1.r.s2_1_2").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 5, "test.r.s2.r.s2_2").getStateVector());
+		assertStateVector(0, 1, getAssertedExState(flow, 0, "test.r.s1")
+				.getStateVector());
+		assertStateVector(0, 1, getAssertedExState(flow, 1, "test.r.s2")
+				.getStateVector());
+		assertStateVector(0, 1, getAssertedExState(flow, 2, "test.r.s2.r.s2_1")
+				.getStateVector());
+		assertStateVector(0, 1,
+				getAssertedExState(flow, 3, "test.r.s2.r.s2_1.r.s2_1_1")
+						.getStateVector());
+		assertStateVector(0, 1,
+				getAssertedExState(flow, 4, "test.r.s2.r.s2_1.r.s2_1_2")
+						.getStateVector());
+		assertStateVector(0, 1, getAssertedExState(flow, 5, "test.r.s2.r.s2_2")
+				.getStateVector());
 
 	}
 
-	
 	/**
-	 * The state vector descriptor of the ExecutionFlow must have an offset of 0 and a size that is 
-	 * the maximum orthogonality of the statechart.
+	 * The state vector descriptor of the ExecutionFlow must have an offset of 0
+	 * and a size that is the maximum orthogonality of the statechart.
 	 */
-	@Test public void testSCStateVectorDeepOrthopgonal() {
+	@Test
+	public void testSCStateVectorDeepOrthopgonal() {
 		Statechart sc = _createStatechart("test");
-		
-		{  // first top region 
+
+		{ // first top region
 			Region r = _createRegion("r1", sc);
 			_createState("s1", r);
 			State s2 = _createState("s2", r);
-			{ // first sub region 
+			{ // first sub region
 				Region s2_r = _createRegion("r", s2);
 				State s2_1 = _createState("s2_1", s2_r);
 				{ // first sub sub region
@@ -112,82 +119,99 @@ public class ModelSequencerStateVectorTest extends ModelSequencerTest {
 				_createState("s2_2", s2_r);
 			}
 		}
-		{  // second top region 
+		{ // second top region
 			Region r = _createRegion("r2", sc);
 			_createState("s3", r);
 			_createState("s4", r);
 		}
 
-
 		ExecutionFlow flow = sequencer.transform(sc);
-		
+
 		assertNotNull(flow.getStateVector());
 		assertStateVector(0, 3, flow.getStateVector());
-		
-		assertStateVector(0, 1, getAssertedExState(flow, 0, "test.r1.s1").getStateVector());
-		assertStateVector(0, 2, getAssertedExState(flow, 1, "test.r1.s2").getStateVector());
-		assertStateVector(0, 2, getAssertedExState(flow, 2, "test.r1.s2.r.s2_1").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 3, "test.r1.s2.r.s2_1.r1.s2_1_1").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 4, "test.r1.s2.r.s2_1.r1.s2_1_2").getStateVector());
-		assertStateVector(1, 1, getAssertedExState(flow, 5, "test.r1.s2.r.s2_1.r2.s2_1_3").getStateVector());
-		assertStateVector(1, 1, getAssertedExState(flow, 6, "test.r1.s2.r.s2_1.r2.s2_1_4").getStateVector());
-		assertStateVector(0, 1, getAssertedExState(flow, 7, "test.r1.s2.r.s2_2").getStateVector());
-		assertStateVector(2, 1, getAssertedExState(flow, 8, "test.r2.s3").getStateVector());
-		assertStateVector(2, 1, getAssertedExState(flow, 9, "test.r2.s4").getStateVector());
+
+		assertStateVector(0, 1, getAssertedExState(flow, 0, "test.r1.s1")
+				.getStateVector());
+		assertStateVector(0, 2, getAssertedExState(flow, 1, "test.r1.s2")
+				.getStateVector());
+		assertStateVector(0, 2,
+				getAssertedExState(flow, 2, "test.r1.s2.r.s2_1")
+						.getStateVector());
+		assertStateVector(0, 1,
+				getAssertedExState(flow, 3, "test.r1.s2.r.s2_1.r1.s2_1_1")
+						.getStateVector());
+		assertStateVector(0, 1,
+				getAssertedExState(flow, 4, "test.r1.s2.r.s2_1.r1.s2_1_2")
+						.getStateVector());
+		assertStateVector(1, 1,
+				getAssertedExState(flow, 5, "test.r1.s2.r.s2_1.r2.s2_1_3")
+						.getStateVector());
+		assertStateVector(1, 1,
+				getAssertedExState(flow, 6, "test.r1.s2.r.s2_1.r2.s2_1_4")
+						.getStateVector());
+		assertStateVector(0, 1,
+				getAssertedExState(flow, 7, "test.r1.s2.r.s2_2")
+						.getStateVector());
+		assertStateVector(2, 1, getAssertedExState(flow, 8, "test.r2.s3")
+				.getStateVector());
+		assertStateVector(2, 1, getAssertedExState(flow, 9, "test.r2.s4")
+				.getStateVector());
 
 	}
 
-	public ExecutionState getAssertedExState(ExecutionFlow flow, int offset, String name) {
+	public ExecutionState getAssertedExState(ExecutionFlow flow, int offset,
+			String name) {
 		ExecutionState s = flow.getStates().get(offset);
 		assertEquals(name, s.getName());
-		
+
 		return s;
 	}
-	
+
 	public void assertStateVector(int offset, int size, StateVector sv) {
 		assertNotNull("state vector is null", sv);
 		assertEquals("wrong state vector offset -", offset, sv.getOffset());
-		assertEquals("wrong state vector size -", size, sv.getSize());		
+		assertEquals("wrong state vector size -", size, sv.getSize());
 	}
-	
-	
+
 	/**
-	 * The state vector descriptor of the ExecutionFlow must have an offset of 0 and a size that is 
-	 * the maximum orthogonality of the statechart.
+	 * The state vector descriptor of the ExecutionFlow must have an offset of 0
+	 * and a size that is the maximum orthogonality of the statechart.
 	 */
-	@Test public void testSCStateVectorEmptyRegion() {
+	@Test
+	public void testSCStateVectorEmptyRegion() {
 		Statechart sc = _createStatechart("test");
-		
-		{  // first top region 
+
+		{ // first top region
 			_createRegion("sc_r1", sc);
 		}
-	
+
 		ExecutionFlow flow = sequencer.transform(sc);
-		
+
 		assertNotNull(flow.getStateVector());
 		assertEquals(0, flow.getStateVector().getSize());
 		assertEquals(0, flow.getStateVector().getOffset());
 	}
 
 	/**
-	 * The state vector descriptor of the ExecutionFlow must have an offset of 0 and a size that is 
-	 * the maximum orthogonality of the statechart.
+	 * The state vector descriptor of the ExecutionFlow must have an offset of 0
+	 * and a size that is the maximum orthogonality of the statechart.
 	 */
-	@Test public void testSCStateVectorPseudoStates() {
+	@Test
+	public void testSCStateVectorPseudoStates() {
 		Statechart sc = _createStatechart("test");
-		
-		{  // first top region 
+
+		{ // first top region
 			Region r = _createRegion("sc_r1", sc);
 			Entry e = _createEntry(EntryKind.INITIAL, null, r);
 			Entry s = _createEntry(null, "s", r);
 			_createTransition(e, s);
 		}
-	
+
 		ExecutionFlow flow = sequencer.transform(sc);
-		
+
 		assertNotNull(flow.getStateVector());
 		assertEquals(0, flow.getStateVector().getSize());
 		assertEquals(0, flow.getStateVector().getOffset());
 	}
-	
+
 }

+ 0 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerTest.java

@@ -15,7 +15,6 @@ import com.google.inject.Injector;
  * @author axel terfloth
  * 
  */
-@SuppressWarnings("unused")
 public class ModelSequencerTest extends Assert {
 
 	@Inject

+ 13 - 13
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencertDeclarationsTest.java

@@ -5,19 +5,19 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEventDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInternalScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createOperation;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createOperationCall;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createReactionEffect;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createReactionTrigger;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegularEventSpec;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createEventDefinition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInternalScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createOperation;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createOperationCall;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createReactionEffect;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createReactionTrigger;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createRegularEventSpec;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.Call;

+ 3 - 334
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SCTTestUtil.java

@@ -1,53 +1,26 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory.*;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory.*;
+
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.EcoreUtil2;
-import org.yakindu.base.base.NamedElement;
 import org.yakindu.base.types.Type;
-import org.yakindu.base.types.TypesFactory;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.Step;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
-import org.yakindu.sct.model.sgraph.FinalState;
-import org.yakindu.sct.model.sgraph.Reaction;
-import org.yakindu.sct.model.sgraph.ReactiveElement;
 import org.yakindu.sct.model.sgraph.Region;
-import org.yakindu.sct.model.sgraph.SGraphFactory;
-import org.yakindu.sct.model.sgraph.Scope;
-import org.yakindu.sct.model.sgraph.ScopedElement;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.sgraph.Vertex;
-import org.yakindu.sct.model.stext.stext.AlwaysEvent;
-import org.yakindu.sct.model.stext.stext.AssignmentExpression;
-import org.yakindu.sct.model.stext.stext.AssignmentOperator;
-import org.yakindu.sct.model.stext.stext.BoolLiteral;
 import org.yakindu.sct.model.stext.stext.EventDefinition;
-import org.yakindu.sct.model.stext.stext.EventSpec;
-import org.yakindu.sct.model.stext.stext.Expression;
-import org.yakindu.sct.model.stext.stext.FeatureCall;
-import org.yakindu.sct.model.stext.stext.IntLiteral;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
-import org.yakindu.sct.model.stext.stext.InternalScope;
-import org.yakindu.sct.model.stext.stext.LocalReaction;
-import org.yakindu.sct.model.stext.stext.OnCycleEvent;
-import org.yakindu.sct.model.stext.stext.OperationDefinition;
-import org.yakindu.sct.model.stext.stext.PrimitiveValueExpression;
-import org.yakindu.sct.model.stext.stext.ReactionEffect;
 import org.yakindu.sct.model.stext.stext.ReactionTrigger;
-import org.yakindu.sct.model.stext.stext.RegularEventSpec;
-import org.yakindu.sct.model.stext.stext.SimpleScope;
-import org.yakindu.sct.model.stext.stext.StextFactory;
-import org.yakindu.sct.model.stext.stext.TimeEventSpec;
-import org.yakindu.sct.model.stext.stext.TimeEventType;
-import org.yakindu.sct.model.stext.stext.TimeUnit;
-import org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 
 import com.google.common.base.Predicate;
@@ -74,310 +47,6 @@ public class SCTTestUtil {
 		return result;
 	}
 
-	public static EventDefinition _createEventDefinition(String name,
-			Scope scope) {
-		EventDefinition e = StextFactory.eINSTANCE.createEventDefinition();
-		e.setName(name);
-		if (scope != null)
-			scope.getDeclarations().add(e);
-		return e;
-	}
-
-	public static OperationDefinition _createOperation(String name, Scope scope) {
-		OperationDefinition e = StextFactory.eINSTANCE
-				.createOperationDefinition();
-		e.setName(name);
-		if (scope != null)
-			scope.getDeclarations().add(e);
-		return e;
-	}
-
-	public static VariableDefinition _createVariableDefinition(String name,
-			Type type, Scope scope, Expression initialValue) {
-		VariableDefinition definition = _createVariableDefinition(name, type,
-				scope);
-		definition.setInitialValue(initialValue);
-		return definition;
-	}
-
-	public static VariableDefinition _createVariableDefinition(String name,
-			Type type, Scope scope) {
-		VariableDefinition v = StextFactory.eINSTANCE
-				.createVariableDefinition();
-		v.setName(name);
-		v.setType(type);
-		if (scope != null)
-			scope.getDeclarations().add(v);
-		return v;
-	}
-
-	public static Type _createType(String name) {
-		Type t = TypesFactory.eINSTANCE.createType();
-		t.setName(name);
-
-		return t;
-	}
-
-	public static RegularEventSpec _createRegularEventSpec(EventDefinition e1,
-			ReactionTrigger rt) {
-		RegularEventSpec e1Spec = StextFactory.eINSTANCE
-				.createRegularEventSpec();
-		e1Spec.setEvent(createTypedElementReferenceExpression(e1));
-		if (rt != null)
-			rt.getTriggers().add(e1Spec);
-		return e1Spec;
-	}
-
-	public static TypedElementReferenceExpression createTypedElementReferenceExpression(
-			NamedElement target) {
-		TypedElementReferenceExpression referenceExpression = StextFactory.eINSTANCE
-				.createTypedElementReferenceExpression();
-		referenceExpression.setReference(target);
-		return referenceExpression;
-	}
-
-	public static OnCycleEvent _createOncycleEventSpec(ReactionTrigger rt) {
-		OnCycleEvent oce = StextFactory.eINSTANCE.createOnCycleEvent();
-		if (rt != null)
-			rt.getTriggers().add(oce);
-		return oce;
-	}
-
-	public static AlwaysEvent _createAlwaysEventSpec(ReactionTrigger rt) {
-		AlwaysEvent always = StextFactory.eINSTANCE.createAlwaysEvent();
-		if (rt != null)
-			rt.getTriggers().add(always);
-		return always;
-	}
-
-	public static ReactionTrigger _createReactionTrigger(Reaction reaction) {
-		ReactionTrigger rt = StextFactory.eINSTANCE.createReactionTrigger();
-		if (reaction != null)
-			reaction.setTrigger(rt);
-		return rt;
-	}
-
-	public static Statechart _createStatechart(String name) {
-		Statechart sc = SGraphFactory.eINSTANCE.createStatechart();
-		sc.setName(name);
-		return sc;
-	}
-
-	public static InterfaceScope _createInterfaceScope(String name,
-			ScopedElement owner) {
-		InterfaceScope scope = StextFactory.eINSTANCE.createInterfaceScope();
-		scope.setName(name);
-		if (owner != null)
-			owner.getScopes().add(scope);
-		return scope;
-	}
-
-	public static InternalScope _createInternalScope(ScopedElement owner) {
-		InternalScope scope = StextFactory.eINSTANCE.createInternalScope();
-		if (owner != null)
-			owner.getScopes().add(scope);
-		return scope;
-	}
-
-	public static Region _createRegion(String name, Statechart sc) {
-		Region region = SGraphFactory.eINSTANCE.createRegion();
-		region.setName(name);
-		if (sc != null)
-			sc.getRegions().add(region);
-		return region;
-	}
-
-	public static Region _createRegion(String name, State state) {
-		Region region = SGraphFactory.eINSTANCE.createRegion();
-		region.setName(name);
-		if (state != null)
-			state.getRegions().add(region);
-		return region;
-	}
-
-	public static State _createState(String name, Region r) {
-		State state = SGraphFactory.eINSTANCE.createState();
-		state.setName(name);
-		if (r != null)
-			r.getVertices().add(state);
-		return state;
-	}
-
-	public static FinalState _createFinalState(Region r) {
-		FinalState state = SGraphFactory.eINSTANCE.createFinalState();
-		if (r != null)
-			r.getVertices().add(state);
-		return state;
-	}
-
-	public static Entry _createEntry(EntryKind kind, String name, Region r) {
-		Entry entry = SGraphFactory.eINSTANCE.createEntry();
-		if (kind != null)
-			entry.setKind(kind);
-		else
-			entry.setKind(EntryKind.INITIAL);
-		entry.setName(name);
-		if (r != null)
-			r.getVertices().add(entry);
-		return entry;
-	}
-
-	public static Transition _createTransition(Vertex source, Vertex target) {
-		Transition t = SGraphFactory.eINSTANCE.createTransition();
-		t.setSource(source);
-		t.setTarget(target);
-		return t;
-	}
-
-	public static ReactionEffect _createReactionEffect(Reaction reaction) {
-		ReactionEffect effect = StextFactory.eINSTANCE.createReactionEffect();
-		if (reaction != null)
-			reaction.setEffect(effect);
-		return effect;
-	}
-
-	public static TimeEventSpec _createTimeEventSpec(TimeEventType type,
-			int value, TimeUnit unit, ReactionTrigger rt) {
-		TimeEventSpec timeTrigger = StextFactory.eINSTANCE
-				.createTimeEventSpec();
-		timeTrigger.setType(type);
-		timeTrigger.setValue(value);
-		timeTrigger.setUnit(unit);
-
-		if (rt != null)
-			rt.getTriggers().add(timeTrigger);
-		return timeTrigger;
-	}
-
-	public static LocalReaction _createEntryAction(State parent) {
-		return _createLocalReaction(parent,
-				StextFactory.eINSTANCE.createEntryEvent());
-	}
-
-	public static LocalReaction _createExitAction(State parent) {
-		return _createLocalReaction(parent,
-				StextFactory.eINSTANCE.createExitEvent());
-	}
-
-	public static LocalReaction _createTimeTriggeredReaction(State parent,
-			TimeEventType type, int value, TimeUnit unit) {
-		// TimeEventSpec timeTrigger =
-		// StextFactory.eINSTANCE.createTimeEventSpec();
-		// timeTrigger.setType(type);
-		// timeTrigger.setValue(value);
-		// timeTrigger.setUnit(unit);
-		return _createLocalReaction(parent,
-				_createTimeEventSpec(type, value, unit, null));
-	}
-
-	public static LocalReaction _createLocalReaction(State parent,
-			EventSpec triggerEvent) {
-		LocalReaction reaction = _createLocalReaction(triggerEvent);
-
-		Scope scope = getOrCreateSimpleScope(parent);
-
-		scope.getDeclarations().add(reaction);
-
-		return reaction;
-	}
-
-	public static LocalReaction _createLocalReaction(Statechart parent,
-			EventSpec triggerEvent) {
-		LocalReaction reaction = _createLocalReaction(triggerEvent);
-
-		Scope scope = getOrCreateInternalScope(parent);
-
-		scope.getDeclarations().add(reaction);
-
-		return reaction;
-	}
-
-	public static SimpleScope getOrCreateSimpleScope(State state) {
-		for (Scope scope : state.getScopes()) {
-			if (scope instanceof SimpleScope) {
-				return (SimpleScope) scope;
-			}
-		}
-		SimpleScope scope = StextFactory.eINSTANCE.createSimpleScope();
-		state.getScopes().add(scope);
-		return scope;
-	}
-
-	public static InternalScope getOrCreateInternalScope(Statechart sc) {
-		for (Scope scope : sc.getScopes()) {
-			if (scope instanceof InternalScope) {
-				return (InternalScope) scope;
-			}
-		}
-		return _createInternalScope(sc);
-	}
-
-	public static LocalReaction _createLocalReaction(EventSpec triggerEvent) {
-		LocalReaction reaction = StextFactory.eINSTANCE.createLocalReaction();
-		ReactionTrigger trigger = StextFactory.eINSTANCE
-				.createReactionTrigger();
-		_createReactionEffect(reaction);
-
-		if (triggerEvent != null)
-			trigger.getTriggers().add(triggerEvent);
-		reaction.setTrigger(trigger);
-
-		return reaction;
-	}
-
-	public static void _createExitAssignment(VariableDefinition v1, State s1,
-			int value) {
-		LocalReaction exitAction = _createExitAction(s1);
-		_createVariableAssignment(v1, AssignmentOperator.ASSIGN,
-				_createValue(value), (ReactionEffect) exitAction.getEffect());
-	}
-
-	public static void _createEntryAssignment(VariableDefinition v1, State s1,
-			int value) {
-		LocalReaction entryAction = _createEntryAction(s1);
-		_createVariableAssignment(v1, AssignmentOperator.ASSIGN,
-				_createValue(value), (ReactionEffect) entryAction.getEffect());
-	}
-
-	public static AssignmentExpression _createVariableAssignment(
-			VariableDefinition v, AssignmentOperator op, Expression expression,
-			ReactionEffect e) {
-		AssignmentExpression assignment = StextFactory.eINSTANCE
-				.createAssignmentExpression();
-		assignment.setVarRef(createTypedElementReferenceExpression(v));
-		assignment.setOperator(op);
-		assignment.setExpression(expression);
-		if (e != null)
-			e.getActions().add(assignment);
-		return assignment;
-	}
-
-	public static FeatureCall _createOperationCall(OperationDefinition o) {
-		// TODO add owner as TypedElementExpression
-		FeatureCall oc = StextFactory.eINSTANCE.createFeatureCall();
-		oc.setFeature(o);
-		oc.setOperationCall(true);
-		return oc;
-	}
-
-	public static PrimitiveValueExpression _createValue(int i) {
-		PrimitiveValueExpression assignment = StextFactory.eINSTANCE
-				.createPrimitiveValueExpression();
-		IntLiteral intLit = StextFactory.eINSTANCE.createIntLiteral();
-		intLit.setValue(i);
-		assignment.setValue(intLit);
-		return assignment;
-	}
-
-	public static PrimitiveValueExpression _createValue(boolean b) {
-		PrimitiveValueExpression assignment = StextFactory.eINSTANCE
-				.createPrimitiveValueExpression();
-		BoolLiteral boolLit = StextFactory.eINSTANCE.createBoolLiteral();
-		boolLit.setValue(b);
-		assignment.setValue(boolLit);
-		return assignment;
-	}
-
 	public static State findState(Statechart sc, final String name) {
 		Collection<EObject> states = Collections2.filter(
 				EcoreUtil2.eAllContentsAsList(sc), new Predicate<Object>() {

+ 7 - 23
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/SelfTransitionTest.java

@@ -1,42 +1,26 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.TYPE_INTEGER;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntry;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createEntryAssignment;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createInterfaceScope;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createRegion;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createState;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createStatechart;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createTransition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil._createVariableDefinition;
-import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createEntry;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createRegion;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createState;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createStatechart;
+import static org.yakindu.sct.model.sgraph.test.util.SgraphTestFactory._createTransition;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope;
+import static org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition;
 
 import org.eclipse.emf.common.util.EList;
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.ExecutionNode;
-import org.yakindu.sct.model.sexec.ExecutionRegion;
 import org.yakindu.sct.model.sexec.ExecutionState;
-import org.yakindu.sct.model.sexec.HistoryEntry;
 import org.yakindu.sct.model.sexec.Reaction;
-import org.yakindu.sct.model.sexec.SaveHistory;
-import org.yakindu.sct.model.sexec.Sequence;
-import org.yakindu.sct.model.sexec.Step;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.MinimalTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.InitializingTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.OrthogonalFlatTSC;
-import org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.SimpleFlatTSC;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.stext.stext.AssignmentOperator;
 import org.yakindu.sct.model.stext.stext.InterfaceScope;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 

+ 289 - 0
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/util/StextTestFactory.java

@@ -0,0 +1,289 @@
+package org.yakindu.sct.model.stext.test.util;
+
+import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.Type;
+import org.yakindu.base.types.TypesFactory;
+import org.yakindu.sct.model.sgraph.Reaction;
+import org.yakindu.sct.model.sgraph.Scope;
+import org.yakindu.sct.model.sgraph.ScopedElement;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.stext.stext.AlwaysEvent;
+import org.yakindu.sct.model.stext.stext.AssignmentExpression;
+import org.yakindu.sct.model.stext.stext.AssignmentOperator;
+import org.yakindu.sct.model.stext.stext.BoolLiteral;
+import org.yakindu.sct.model.stext.stext.EventDefinition;
+import org.yakindu.sct.model.stext.stext.EventSpec;
+import org.yakindu.sct.model.stext.stext.Expression;
+import org.yakindu.sct.model.stext.stext.FeatureCall;
+import org.yakindu.sct.model.stext.stext.IntLiteral;
+import org.yakindu.sct.model.stext.stext.InterfaceScope;
+import org.yakindu.sct.model.stext.stext.InternalScope;
+import org.yakindu.sct.model.stext.stext.LocalReaction;
+import org.yakindu.sct.model.stext.stext.OnCycleEvent;
+import org.yakindu.sct.model.stext.stext.OperationDefinition;
+import org.yakindu.sct.model.stext.stext.PrimitiveValueExpression;
+import org.yakindu.sct.model.stext.stext.ReactionEffect;
+import org.yakindu.sct.model.stext.stext.ReactionTrigger;
+import org.yakindu.sct.model.stext.stext.RegularEventSpec;
+import org.yakindu.sct.model.stext.stext.SimpleScope;
+import org.yakindu.sct.model.stext.stext.StextFactory;
+import org.yakindu.sct.model.stext.stext.TimeEventSpec;
+import org.yakindu.sct.model.stext.stext.TimeEventType;
+import org.yakindu.sct.model.stext.stext.TimeUnit;
+import org.yakindu.sct.model.stext.stext.TypedElementReferenceExpression;
+import org.yakindu.sct.model.stext.stext.VariableDefinition;
+import org.yakindu.sct.model.stext.stext.impl.StextFactoryImpl;
+
+public class StextTestFactory extends StextFactoryImpl {
+	StextTestFactory eINSTANCE = new StextTestFactory();
+
+	public static EventDefinition _createEventDefinition(String name,
+			Scope scope) {
+		EventDefinition e = StextFactory.eINSTANCE.createEventDefinition();
+		e.setName(name);
+		if (scope != null)
+			scope.getDeclarations().add(e);
+		return e;
+	}
+
+	public static OperationDefinition _createOperation(String name, Scope scope) {
+		OperationDefinition e = StextFactory.eINSTANCE
+				.createOperationDefinition();
+		e.setName(name);
+		if (scope != null)
+			scope.getDeclarations().add(e);
+		return e;
+	}
+
+	public static VariableDefinition _createVariableDefinition(String name,
+			Type type, Scope scope, Expression initialValue) {
+		VariableDefinition definition = _createVariableDefinition(name, type,
+				scope);
+		definition.setInitialValue(initialValue);
+		return definition;
+	}
+
+	public static VariableDefinition _createVariableDefinition(String name,
+			Type type, Scope scope) {
+		VariableDefinition v = StextFactory.eINSTANCE
+				.createVariableDefinition();
+		v.setName(name);
+		v.setType(type);
+		if (scope != null)
+			scope.getDeclarations().add(v);
+		return v;
+	}
+
+	public static Type _createType(String name) {
+		Type t = TypesFactory.eINSTANCE.createType();
+		t.setName(name);
+
+		return t;
+	}
+
+	public static RegularEventSpec _createRegularEventSpec(EventDefinition e1,
+			ReactionTrigger rt) {
+		RegularEventSpec e1Spec = StextFactory.eINSTANCE
+				.createRegularEventSpec();
+		e1Spec.setEvent(_createTypedElementReferenceExpression(e1));
+		if (rt != null)
+			rt.getTriggers().add(e1Spec);
+		return e1Spec;
+	}
+
+	public static TypedElementReferenceExpression _createTypedElementReferenceExpression(
+			NamedElement target) {
+		TypedElementReferenceExpression referenceExpression = StextFactory.eINSTANCE
+				.createTypedElementReferenceExpression();
+		referenceExpression.setReference(target);
+		return referenceExpression;
+	}
+
+	public static OnCycleEvent _createOncycleEventSpec(ReactionTrigger rt) {
+		OnCycleEvent oce = StextFactory.eINSTANCE.createOnCycleEvent();
+		if (rt != null)
+			rt.getTriggers().add(oce);
+		return oce;
+	}
+
+	public static AlwaysEvent _createAlwaysEventSpec(ReactionTrigger rt) {
+		AlwaysEvent always = StextFactory.eINSTANCE.createAlwaysEvent();
+		if (rt != null)
+			rt.getTriggers().add(always);
+		return always;
+	}
+
+	public static ReactionTrigger _createReactionTrigger(Reaction reaction) {
+		ReactionTrigger rt = StextFactory.eINSTANCE.createReactionTrigger();
+		if (reaction != null)
+			reaction.setTrigger(rt);
+		return rt;
+	}
+
+	public static InterfaceScope _createInterfaceScope(String name,
+			ScopedElement owner) {
+		InterfaceScope scope = StextFactory.eINSTANCE.createInterfaceScope();
+		scope.setName(name);
+		if (owner != null)
+			owner.getScopes().add(scope);
+		return scope;
+	}
+
+	public static InternalScope _createInternalScope(ScopedElement owner) {
+		InternalScope scope = StextFactory.eINSTANCE.createInternalScope();
+		if (owner != null)
+			owner.getScopes().add(scope);
+		return scope;
+	}
+
+	public static ReactionEffect _createReactionEffect(Reaction reaction) {
+		ReactionEffect effect = StextFactory.eINSTANCE.createReactionEffect();
+		if (reaction != null)
+			reaction.setEffect(effect);
+		return effect;
+	}
+
+	public static TimeEventSpec _createTimeEventSpec(TimeEventType type,
+			int value, TimeUnit unit, ReactionTrigger rt) {
+		TimeEventSpec timeTrigger = StextFactory.eINSTANCE
+				.createTimeEventSpec();
+		timeTrigger.setType(type);
+		timeTrigger.setValue(value);
+		timeTrigger.setUnit(unit);
+
+		if (rt != null)
+			rt.getTriggers().add(timeTrigger);
+		return timeTrigger;
+	}
+
+	public static LocalReaction _createEntryAction(State parent) {
+		return _createLocalReaction(parent,
+				StextFactory.eINSTANCE.createEntryEvent());
+	}
+
+	public static LocalReaction _createExitAction(State parent) {
+		return _createLocalReaction(parent,
+				StextFactory.eINSTANCE.createExitEvent());
+	}
+
+	public static LocalReaction _createTimeTriggeredReaction(State parent,
+			TimeEventType type, int value, TimeUnit unit) {
+		// TimeEventSpec timeTrigger =
+		// StextFactory.eINSTANCE.createTimeEventSpec();
+		// timeTrigger.setType(type);
+		// timeTrigger.setValue(value);
+		// timeTrigger.setUnit(unit);
+		return _createLocalReaction(parent,
+				_createTimeEventSpec(type, value, unit, null));
+	}
+
+	public static LocalReaction _createLocalReaction(State parent,
+			EventSpec triggerEvent) {
+		LocalReaction reaction = _createLocalReaction(triggerEvent);
+
+		Scope scope = getOrCreateSimpleScope(parent);
+
+		scope.getDeclarations().add(reaction);
+
+		return reaction;
+	}
+
+	public static LocalReaction _createLocalReaction(Statechart parent,
+			EventSpec triggerEvent) {
+		LocalReaction reaction = _createLocalReaction(triggerEvent);
+
+		Scope scope = getOrCreateInternalScope(parent);
+
+		scope.getDeclarations().add(reaction);
+
+		return reaction;
+	}
+
+	public static SimpleScope getOrCreateSimpleScope(State state) {
+		for (Scope scope : state.getScopes()) {
+			if (scope instanceof SimpleScope) {
+				return (SimpleScope) scope;
+			}
+		}
+		SimpleScope scope = StextFactory.eINSTANCE.createSimpleScope();
+		state.getScopes().add(scope);
+		return scope;
+	}
+
+	public static InternalScope getOrCreateInternalScope(Statechart sc) {
+		for (Scope scope : sc.getScopes()) {
+			if (scope instanceof InternalScope) {
+				return (InternalScope) scope;
+			}
+		}
+		return _createInternalScope(sc);
+	}
+
+	public static LocalReaction _createLocalReaction(EventSpec triggerEvent) {
+		LocalReaction reaction = StextFactory.eINSTANCE.createLocalReaction();
+		ReactionTrigger trigger = StextFactory.eINSTANCE
+				.createReactionTrigger();
+		_createReactionEffect(reaction);
+
+		if (triggerEvent != null)
+			trigger.getTriggers().add(triggerEvent);
+		reaction.setTrigger(trigger);
+
+		return reaction;
+	}
+
+	public static void _createExitAssignment(VariableDefinition v1, State s1,
+			int value) {
+		LocalReaction exitAction = _createExitAction(s1);
+		_createVariableAssignment(v1, AssignmentOperator.ASSIGN,
+				_createValue(value), (ReactionEffect) exitAction.getEffect());
+	}
+
+	public static void _createEntryAssignment(VariableDefinition v1, State s1,
+			int value) {
+		LocalReaction entryAction = _createEntryAction(s1);
+		_createVariableAssignment(v1, AssignmentOperator.ASSIGN,
+				_createValue(value), (ReactionEffect) entryAction.getEffect());
+	}
+
+	public static AssignmentExpression _createVariableAssignment(
+			VariableDefinition v, AssignmentOperator op, Expression expression,
+			ReactionEffect e) {
+		AssignmentExpression assignment = StextFactory.eINSTANCE
+				.createAssignmentExpression();
+		assignment.setVarRef(_createTypedElementReferenceExpression(v));
+		assignment.setOperator(op);
+		assignment.setExpression(expression);
+		if (e != null)
+			e.getActions().add(assignment);
+		return assignment;
+	}
+
+	public static FeatureCall _createOperationCall(OperationDefinition o) {
+		// TODO add owner as TypedElementExpression
+		FeatureCall oc = StextFactory.eINSTANCE.createFeatureCall();
+		oc.setFeature(o);
+		oc.setOperationCall(true);
+		return oc;
+	}
+
+	public static PrimitiveValueExpression _createValue(int i) {
+		PrimitiveValueExpression assignment = StextFactory.eINSTANCE
+				.createPrimitiveValueExpression();
+		IntLiteral intLit = StextFactory.eINSTANCE.createIntLiteral();
+		intLit.setValue(i);
+		assignment.setValue(intLit);
+		return assignment;
+	}
+
+	public static PrimitiveValueExpression _createValue(boolean b) {
+		PrimitiveValueExpression assignment = StextFactory.eINSTANCE
+				.createPrimitiveValueExpression();
+		BoolLiteral boolLit = StextFactory.eINSTANCE.createBoolLiteral();
+		boolLit.setValue(b);
+		assignment.setValue(boolLit);
+		return assignment;
+	}
+
+}