use of org.yakindu.sct.model.sgraph.Transition in project statecharts by Yakindu.
the class SGraphJavaValidationTest method orthogonalTransition_BetweenStateRegions.
@Test
public void orthogonalTransition_BetweenStateRegions() {
statechart = loadStatechart("OrthogonalTransition.sct");
State state = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "B1");
Transition trans = state.getOutgoingTransitions().get(0);
assertFalse(validator.validate(trans, diagnostics, new HashMap<Object, Object>()));
assertIssueCount(diagnostics, 1);
assertError(diagnostics, ISSUE_TRANSITION_ORTHOGONAL);
}
use of org.yakindu.sct.model.sgraph.Transition in project statecharts by Yakindu.
the class SGraphJavaValidationTest method initialEntryWithTransitionToContainer.
@Test
public void initialEntryWithTransitionToContainer() {
statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR + "EntryTransitionToParentState.sct");
Iterator<EObject> iter = statechart.eAllContents();
while (iter.hasNext()) {
EObject element = iter.next();
if (element instanceof Transition) {
validator.validate(element, diagnostics, new HashMap<Object, Object>());
}
}
assertIssueCount(diagnostics, 1);
assertError(diagnostics, ISSUE_INITIAL_ENTRY_WITH_TRANSITION_TO_CONTAINER);
}
use of org.yakindu.sct.model.sgraph.Transition in project statecharts by Yakindu.
the class SGraphJavaValidationTest method disallowTrigger.
@Test
public void disallowTrigger() {
prepareStateTest();
Entry entry = factory.createEntry();
region.getVertices().add(entry);
Transition trans = createTransition(entry, state);
trans.setTrigger(sTextFactory.createReactionTrigger());
diagnostics = new BasicDiagnostic();
assertFalse(validator.validate(entry, diagnostics, new HashMap<Object, Object>()));
assertError(diagnostics, ISSUE_ENTRY_WITH_TRIGGER);
}
use of org.yakindu.sct.model.sgraph.Transition 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.Transition 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);
}
Aggregations