Browse Source

Additional test cases for named entries and entry points

terfloth@itemis.de 12 years ago
parent
commit
fd4dd8c7a4

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

@@ -18,7 +18,8 @@ import org.junit.runners.Suite.SuiteClasses;
 @SuiteClasses({AlwaysOncycleTest.class, AssignmentAsExpressionTest.class,
 		BitExpressionsTest.class, BooleanExpressionsTest.class,
 		CKeywordsTest.class, DeclarationsTest.class, ChoiceTest.class,
-		DeepHistoryTest.class, ExitOnSelfTransitionTest.class, GuardTest.class,
+		DeepHistoryTest.class, EnterStateTest.class,
+		ExitOnSelfTransitionTest.class, GuardTest.class,
 		GuardedEntryTest.class, GuardedExitTest.class,
 		HistoryWithoutInitialStepTest.class, IntegerExpressionsTest.class,
 		InEventLifeCycleTest.class, InternalEventLifeCycleTest.class,

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

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

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

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