Browse Source

Added compilertest for Operations

Andreas Mülder 12 years ago
parent
commit
021deed856

+ 8 - 1
test-plugins/org.yakindu.sct.generator.java.test/src/org/yakindu/sct/generator/java/JavaSCTGeneratorTest.java

@@ -20,6 +20,8 @@ import static util.TestModels.FEATURE_CALLS;
 import static util.TestModels.GUARD;
 import static util.TestModels.INTEGER_EXPRESSIONS;
 import static util.TestModels.JAVA_KEYWORDS_M;
+import static util.TestModels.OPERATIONS;
+import static util.TestModels.PARENTHESIS;
 import static util.TestModels.PRIORITY_VALUES;
 import static util.TestModels.RAISE_EVENTS;
 import static util.TestModels.REAL_EXPRESSIONS;
@@ -33,7 +35,6 @@ import static util.TestModels.STRING_EXPRESSIONS;
 import static util.TestModels.SYNC_FORK;
 import static util.TestModels.SYNC_JOIN;
 import static util.TestModels.VALUED_EVENTS;
-import static util.TestModels.PARENTHESIS;
 
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.runtime.CoreException;
@@ -239,4 +240,10 @@ public class JavaSCTGeneratorTest extends AbstractJavaGeneratorTest {
 				.loadStatechartFromResource(VALUED_EVENTS);
 		failOnError(generateAndCompile(statechart));
 	}
+	@Test
+	public void tesTOperationsModel() throws Exception{
+		Statechart statechart = models
+				.loadStatechartFromResource(OPERATIONS);
+		failOnError(generateAndCompile(statechart));
+	}
 }

BIN
test-plugins/org.yakindu.sct.test.models/images/Operations.png


+ 17 - 7
test-plugins/org.yakindu.sct.test.models/src/util/TestModels.java

@@ -31,7 +31,7 @@ import com.google.inject.Inject;
  * @author andreas muelder - Initial contribution and API
  * 
  */
-public class TestModels { 
+public class TestModels {
 
 	public static final String ALWAYS_ONCYCLE = "AlwaysOncycle.sct";
 	public static final String BIT_EXPRESSIONS = "BitExpressions.sct";
@@ -60,6 +60,7 @@ public class TestModels {
 	private static final String TESTMODEL_DIR = "org.yakindu.sct.test.models/testmodels/";
 	public static final String TIME_TRIGGER = "TimeTrigger.sct";
 	public static final String VALUED_EVENTS = "ValuedEvents.sct";
+	public static final String OPERATIONS = "Operations.sct";
 
 	@Inject
 	private ModelSequencer sequencer;
@@ -114,7 +115,7 @@ public class TestModels {
 	public ExecutionFlow createCKeywordModel() throws IOException {
 		return loadExecutionFlowFromResource(C_KEYWORDS_M);
 	}
-	
+
 	/**
 	 * <img src="../../images/Declarations.png" /> <br />
 	 * 
@@ -175,7 +176,6 @@ public class TestModels {
 		return loadExecutionFlowFromResource(JAVA_KEYWORDS_M);
 	}
 
-	
 	/**
 	 * <img src="../../images/Parenthesis.png" /> <br />
 	 * 
@@ -185,8 +185,7 @@ public class TestModels {
 	public ExecutionFlow createParenthesisModel() throws IOException {
 		return loadExecutionFlowFromResource(PARENTHESIS);
 	}
-	
-		
+
 	/**
 	 * <img src="../../images/PriorityValues.png" /> <br />
 	 * 
@@ -223,7 +222,8 @@ public class TestModels {
 	 * @return the {@link ExecutionFlow}
 	 * @throws IOException
 	 */
-	public ExecutionFlow createSameNameDifferentRegionModel() throws IOException {
+	public ExecutionFlow createSameNameDifferentRegionModel()
+			throws IOException {
 		return loadExecutionFlowFromResource(SAME_NAME_DIFFERENT_REGION);
 	}
 
@@ -313,7 +313,7 @@ public class TestModels {
 	 * 
 	 * @return the {@link ExecutionFlow}
 	 * @throws IOException
-	 */ 
+	 */
 	public ExecutionFlow createTimeTriggerModel() throws IOException {
 		return loadExecutionFlowFromResource(TIME_TRIGGER);
 	}
@@ -328,6 +328,16 @@ public class TestModels {
 		return loadExecutionFlowFromResource(VALUED_EVENTS);
 	}
 
+	/**
+	 * <img src="../../images/Operations.png" /> <br />
+	 * 
+	 * @return the {@link ExecutionFlow}
+	 * @throws IOException
+	 */
+	public ExecutionFlow createOperationsModel() throws IOException {
+		return loadExecutionFlowFromResource(OPERATIONS);
+	}
+
 	/**
 	 * Helper method - loads a testmodel from the Testmodel directory
 	 * 

+ 100 - 0
test-plugins/org.yakindu.sct.test.models/testmodels/Operations.sct

@@ -0,0 +1,100 @@
+<?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="_o9WJwD1DEeK7haHJZ9RPwA" specification="internal:&#xD;&#xA;&#xD;&#xA;operation internalOperation1() &#xD;&#xA;operation internalOperation2(param1 : integer) :boolean&#xD;&#xA;&#xD;&#xA;var  myBool  : boolean&#xD;&#xA;&#xD;&#xA;interface Interface1:&#xD;&#xA;&#xD;&#xA;operation interfaceOperation1() &#xD;&#xA;operation interfaceOperation2(param1 : integer) :boolean&#xD;&#xA;&#xD;&#xA;" name="Operations">
+    <regions xmi:id="_o9WJwz1DEeK7haHJZ9RPwA" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_o9cQYD1DEeK7haHJZ9RPwA">
+        <outgoingTransitions xmi:id="_o9cQej1DEeK7haHJZ9RPwA" target="_o9cQaz1DEeK7haHJZ9RPwA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_o9cQaz1DEeK7haHJZ9RPwA" specification="entry / internalOperation1()&#xD;&#xA;entry / myBool = internalOperation2(4)" name="A" incomingTransitions="_o9cQej1DEeK7haHJZ9RPwA">
+        <outgoingTransitions xmi:id="__4FnMD1DEeK7haHJZ9RPwA" target="__d3JUD1DEeK7haHJZ9RPwA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="__d3JUD1DEeK7haHJZ9RPwA" specification="entry / Interface1.interfaceOperation1&#xD;&#xA;entry / Interface1.interfaceOperation2(4)" name="B" incomingTransitions="__4FnMD1DEeK7haHJZ9RPwA"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_o9WJwT1DEeK7haHJZ9RPwA" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_o9WJwD1DEeK7haHJZ9RPwA" measurementUnit="Pixel">
+    <children xmi:id="_o9WJxD1DEeK7haHJZ9RPwA" type="Region" element="_o9WJwz1DEeK7haHJZ9RPwA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_o9WJxz1DEeK7haHJZ9RPwA" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_o9WJyD1DEeK7haHJZ9RPwA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_o9WJyT1DEeK7haHJZ9RPwA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_o9WJyj1DEeK7haHJZ9RPwA" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_o9cQYT1DEeK7haHJZ9RPwA" type="Entry" element="_o9cQYD1DEeK7haHJZ9RPwA">
+          <children xmi:id="_o9cQZD1DEeK7haHJZ9RPwA" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_o9cQZz1DEeK7haHJZ9RPwA" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_o9cQaD1DEeK7haHJZ9RPwA"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_o9cQaT1DEeK7haHJZ9RPwA"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o9cQZT1DEeK7haHJZ9RPwA" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9cQZj1DEeK7haHJZ9RPwA"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o9cQYj1DEeK7haHJZ9RPwA" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9cQaj1DEeK7haHJZ9RPwA" x="70" y="20"/>
+        </children>
+        <children xmi:id="_o9cQbT1DEeK7haHJZ9RPwA" type="State" element="_o9cQaz1DEeK7haHJZ9RPwA">
+          <children xsi:type="notation:DecorationNode" xmi:id="_o9cQcT1DEeK7haHJZ9RPwA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_o9cQcj1DEeK7haHJZ9RPwA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_o9cQcz1DEeK7haHJZ9RPwA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o9cQdD1DEeK7haHJZ9RPwA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_o9cQdT1DEeK7haHJZ9RPwA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9cQdj1DEeK7haHJZ9RPwA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_o9cQdz1DEeK7haHJZ9RPwA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_o9cQbj1DEeK7haHJZ9RPwA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_o9cQbz1DEeK7haHJZ9RPwA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_o9cQeD1DEeK7haHJZ9RPwA"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9cQeT1DEeK7haHJZ9RPwA" x="60" y="79" width="272" height="80"/>
+        </children>
+        <children xmi:id="__d9P8D1DEeK7haHJZ9RPwA" type="State" element="__d3JUD1DEeK7haHJZ9RPwA">
+          <children xsi:type="notation:DecorationNode" xmi:id="__d9P9D1DEeK7haHJZ9RPwA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="__d9P9T1DEeK7haHJZ9RPwA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="__d9P9j1DEeK7haHJZ9RPwA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="__d9P9z1DEeK7haHJZ9RPwA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="__d9P-D1DEeK7haHJZ9RPwA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="__d9P-T1DEeK7haHJZ9RPwA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="__d9P-j1DEeK7haHJZ9RPwA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="__d9P8T1DEeK7haHJZ9RPwA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="__d9P8j1DEeK7haHJZ9RPwA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="__d9P-z1DEeK7haHJZ9RPwA"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="__d9P8z1DEeK7haHJZ9RPwA" x="60" y="244" width="286" height="80"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9WJyz1DEeK7haHJZ9RPwA"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_o9WJxT1DEeK7haHJZ9RPwA" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9WJzD1DEeK7haHJZ9RPwA" x="460" y="10" width="400" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_o9iXAD1DEeK7haHJZ9RPwA" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_o9iXAj1DEeK7haHJZ9RPwA" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_o9iXAz1DEeK7haHJZ9RPwA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_o9iXBD1DEeK7haHJZ9RPwA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_o9iXBT1DEeK7haHJZ9RPwA" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9iXBj1DEeK7haHJZ9RPwA"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_o9iXBz1DEeK7haHJZ9RPwA" x="10" y="10" width="451" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_o9WJwj1DEeK7haHJZ9RPwA"/>
+    <edges xmi:id="_o9cQez1DEeK7haHJZ9RPwA" type="Transition" element="_o9cQej1DEeK7haHJZ9RPwA" source="_o9cQYT1DEeK7haHJZ9RPwA" target="_o9cQbT1DEeK7haHJZ9RPwA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_o9cQfz1DEeK7haHJZ9RPwA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_o9cQgD1DEeK7haHJZ9RPwA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_o9cQgT1DEeK7haHJZ9RPwA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_o9cQfD1DEeK7haHJZ9RPwA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_o9cQfj1DEeK7haHJZ9RPwA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_o9cQfT1DEeK7haHJZ9RPwA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="__4FnMT1DEeK7haHJZ9RPwA" type="Transition" element="__4FnMD1DEeK7haHJZ9RPwA" source="_o9cQbT1DEeK7haHJZ9RPwA" target="__d9P8D1DEeK7haHJZ9RPwA">
+      <children xsi:type="notation:DecorationNode" xmi:id="__4FnNT1DEeK7haHJZ9RPwA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="__4FnNj1DEeK7haHJZ9RPwA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="__4FnNz1DEeK7haHJZ9RPwA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="__4FnMj1DEeK7haHJZ9RPwA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="__4FnND1DEeK7haHJZ9RPwA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="__4FnMz1DEeK7haHJZ9RPwA" points="[-6, 66, -3, -92]$[-11, 100, -8, -58]"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>