use of org.yakindu.sct.model.sgraph.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method vertexNotReachable_AcceptThroughSubchoice.
/**
* A transition to a sub choice is considered implies reachability.
*/
@Test
public void vertexNotReachable_AcceptThroughSubchoice() {
prepareStateTest();
State stateA = factory.createState();
Region subRegion = factory.createRegion();
state.getRegions().add(subRegion);
State stateC = factory.createState();
subRegion.getVertices().add(stateC);
Choice choice = factory.createChoice();
subRegion.getVertices().add(choice);
Transition t1 = factory.createTransition();
t1.setSource(stateA);
t1.setTarget(choice);
Transition t2 = factory.createTransition();
t2.setSource(choice);
t2.setTarget(stateC);
validate(state);
assertNoIssues(diagnostics);
}
use of org.yakindu.sct.model.sgraph.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method cleanExit.
/**
* Tests a scenario where no issues for an exit nodes exists.
*/
@Test
public void cleanExit() {
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.setTarget(exit);
t.setSource(s);
assertTrue(validate(exit));
assertNoIssues(diagnostics);
}
use of org.yakindu.sct.model.sgraph.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method finalStateIsolated.
/**
* A final state should have at least one incoming transition.
*/
@Test
public void finalStateIsolated() {
statechart = factory.createStatechart();
Region region = factory.createRegion();
statechart.getRegions().add(region);
FinalState finalState = factory.createFinalState();
region.getVertices().add(finalState);
assertFalse(validate(finalState));
assertIssueCount(diagnostics, 1);
assertError(diagnostics, ISSUE_NODE_NOT_REACHABLE);
}
use of org.yakindu.sct.model.sgraph.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method finalStateValid.
/**
* A positive case for a valid final state.
*/
@Test
public void finalStateValid() {
statechart = factory.createStatechart();
Region region = factory.createRegion();
statechart.getRegions().add(region);
FinalState finalState = factory.createFinalState();
region.getVertices().add(finalState);
State state = factory.createState();
region.getVertices().add(state);
createTransition(state, finalState);
assertTrue(validate(finalState));
assertIssueCount(diagnostics, 0);
}
use of org.yakindu.sct.model.sgraph.Region in project statecharts by Yakindu.
the class SGraphJavaValidationTest method finalStateWithOutgoingTransition.
/**
* A final state should have no outgoing transitions
*/
@Test
public void finalStateWithOutgoingTransition() {
statechart = factory.createStatechart();
Region region = factory.createRegion();
statechart.getRegions().add(region);
FinalState finalState = factory.createFinalState();
region.getVertices().add(finalState);
State state = factory.createState();
region.getVertices().add(state);
createTransition(state, finalState);
createTransition(finalState, state);
validate(finalState);
assertIssueCount(diagnostics, 1);
assertWarning(diagnostics, ISSUE_FINAL_STATE_OUTGOING_TRANSITION);
}
Aggregations