use of org.yakindu.sct.model.sgraph.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method choiceWithoutOutgoingTransition.
/**
* A choice must have at least one outgoing transition
*/
@Test
public void choiceWithoutOutgoingTransition() {
statechart = factory.createStatechart();
Region region = factory.createRegion();
statechart.getRegions().add(region);
Choice choice = factory.createChoice();
region.getVertices().add(choice);
State state = factory.createState();
region.getVertices().add(state);
createTransition(state, choice);
assertFalse(validator.validate(choice, diagnostics, new HashMap<Object, Object>()));
assertIssueCount(diagnostics, 1);
assertError(diagnostics, ISSUE_CHOICE_WITHOUT_OUTGOING_TRANSITION);
}
use of org.yakindu.sct.model.sgraph.Region 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.Region 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.Region 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.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method exitWithoutIncomingTransition.
/**
* An exit node should have at leat one incoming transition.
*/
@Test
public void exitWithoutIncomingTransition() {
prepareStateTest();
Region subRegion = factory.createRegion();
state.getRegions().add(subRegion);
Exit exit = factory.createExit();
subRegion.getVertices().add(exit);
assertFalse(validate(exit));
assertWarning(diagnostics, ISSUE_EXIT_WITHOUT_IN_TRANS);
}
Aggregations