use of org.yakindu.sct.model.sgraph.State in project statecharts by Yakindu.
the class SGraphJavaValidationTest method orthogonalSourceStates_StateInParentStateRegion.
@Test
public void orthogonalSourceStates_StateInParentStateRegion() {
statechart = loadStatechart("NotOrthogonalRegion01.sct");
State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "AA");
Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
assertIssueCount(diagnostics, 1);
assertError(diagnostics, ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL);
}
use of org.yakindu.sct.model.sgraph.State in project statecharts by Yakindu.
the class SGraphJavaValidationTest method exitWithOutgoingTransition.
/**
* An exit node must have no outgoing transitions.
*/
@Test
public void exitWithOutgoingTransition() {
prepareStateTest();
Region subRegion = factory.createRegion();
state.getRegions().add(subRegion);
Exit exit = factory.createExit();
subRegion.getVertices().add(exit);
State s = factory.createState();
subRegion.getVertices().add(s);
Transition t = factory.createTransition();
t.setSource(exit);
t.setTarget(s);
assertFalse(validate(exit));
assertError(diagnostics, ISSUE_EXIT_WITH_OUT_TRANS);
}
use of org.yakindu.sct.model.sgraph.State in project statecharts by Yakindu.
the class SGraphJavaValidationTest method vertexNotReachable_AcceptThroughSubentry.
/**
* A transition to a sub entry is considered implies reachability.
*/
@Test
public void vertexNotReachable_AcceptThroughSubentry() {
prepareStateTest();
State stateA = factory.createState();
Region subRegion = factory.createRegion();
state.getRegions().add(subRegion);
State stateC = factory.createState();
subRegion.getVertices().add(stateC);
Entry entry = factory.createEntry();
subRegion.getVertices().add(entry);
Transition t1 = factory.createTransition();
t1.setSource(stateA);
t1.setTarget(entry);
Transition t2 = factory.createTransition();
t2.setSource(entry);
t2.setTarget(stateC);
validate(state);
assertNoIssues(diagnostics);
}
use of org.yakindu.sct.model.sgraph.State in project statecharts by Yakindu.
the class SGraphJavaValidationTest method vertexNotReachable_AcceptThroughSubstate.
/**
* A transition to a sub entry is considered implies reachability.
*/
@Test
public void vertexNotReachable_AcceptThroughSubstate() {
prepareStateTest();
State stateA = factory.createState();
Region subRegion = factory.createRegion();
state.getRegions().add(subRegion);
State stateC = factory.createState();
subRegion.getVertices().add(stateC);
Transition t1 = factory.createTransition();
t1.setSource(stateA);
t1.setTarget(stateC);
validate(state);
assertNoIssues(diagnostics);
}
use of org.yakindu.sct.model.sgraph.State in project statecharts by Yakindu.
the class SGraphTestFactory method _createState.
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;
}
Aggregations