Search in sources :

Example 26 with Transition

use of org.yakindu.sct.model.sgraph.Transition 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);
}
Also used : Choice(org.yakindu.sct.model.sgraph.Choice) FinalState(org.yakindu.sct.model.sgraph.FinalState) State(org.yakindu.sct.model.sgraph.State) Transition(org.yakindu.sct.model.sgraph.Transition) Region(org.yakindu.sct.model.sgraph.Region) Test(org.junit.Test)

Example 27 with Transition

use of org.yakindu.sct.model.sgraph.Transition 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);
}
Also used : FinalState(org.yakindu.sct.model.sgraph.FinalState) State(org.yakindu.sct.model.sgraph.State) Transition(org.yakindu.sct.model.sgraph.Transition) Region(org.yakindu.sct.model.sgraph.Region) Exit(org.yakindu.sct.model.sgraph.Exit) Test(org.junit.Test)

Example 28 with Transition

use of org.yakindu.sct.model.sgraph.Transition in project statecharts by Yakindu.

the class SGraphJavaValidationTest method orthogonalTransition.

@Test
public void orthogonalTransition() {
    statechart = loadStatechart("OrthogonalTransition.sct");
    State state = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "B2");
    Transition trans = state.getOutgoingTransitions().get(0);
    assertTrue(validator.validate(trans, diagnostics, new HashMap<Object, Object>()));
    assertNoIssues(diagnostics);
}
Also used : HashMap(java.util.HashMap) FinalState(org.yakindu.sct.model.sgraph.FinalState) State(org.yakindu.sct.model.sgraph.State) Transition(org.yakindu.sct.model.sgraph.Transition) Test(org.junit.Test)

Example 29 with Transition

use of org.yakindu.sct.model.sgraph.Transition in project statecharts by Yakindu.

the class SGraphJavaValidationTest method orthogonalTransition_BetweenTopLevelRegions.

@Test
public void orthogonalTransition_BetweenTopLevelRegions() {
    statechart = loadStatechart("OrthogonalTransition.sct");
    State state = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "A");
    Transition trans = state.getOutgoingTransitions().get(0);
    assertFalse(validator.validate(trans, diagnostics, new HashMap<Object, Object>()));
    assertIssueCount(diagnostics, 1);
    assertError(diagnostics, ISSUE_TRANSITION_ORTHOGONAL);
}
Also used : HashMap(java.util.HashMap) FinalState(org.yakindu.sct.model.sgraph.FinalState) State(org.yakindu.sct.model.sgraph.State) Transition(org.yakindu.sct.model.sgraph.Transition) Test(org.junit.Test)

Example 30 with Transition

use of org.yakindu.sct.model.sgraph.Transition in project statecharts by Yakindu.

the class SGraphJavaValidationTest method createTransition.

protected Transition createTransition(Vertex source, Vertex target) {
    Transition trans = factory.createTransition();
    trans.setSource(source);
    trans.setTarget(target);
    source.getOutgoingTransitions().add(trans);
    target.getIncomingTransitions().add(trans);
    return trans;
}
Also used : Transition(org.yakindu.sct.model.sgraph.Transition)

Aggregations

Transition (org.yakindu.sct.model.sgraph.Transition)63 Test (org.junit.Test)34 Region (org.yakindu.sct.model.sgraph.Region)26 State (org.yakindu.sct.model.sgraph.State)23 Statechart (org.yakindu.sct.model.sgraph.Statechart)19 FinalState (org.yakindu.sct.model.sgraph.FinalState)13 SGraphTestFactory._createRegion (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion)13 SGraphTestFactory._createStatechart (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart)13 SGraphTestFactory._createTransition (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createTransition)13 ReactionTrigger (org.yakindu.sct.model.stext.stext.ReactionTrigger)13 ExecutionFlow (org.yakindu.sct.model.sexec.ExecutionFlow)10 Entry (org.yakindu.sct.model.sgraph.Entry)10 SGraphTestFactory._createState (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState)10 StextTestFactory._createReactionTrigger (org.yakindu.sct.model.stext.test.util.StextTestFactory._createReactionTrigger)9 EventDefinition (org.yakindu.sct.model.stext.stext.EventDefinition)8 LocalReaction (org.yakindu.sct.model.stext.stext.LocalReaction)8 ReactionEffect (org.yakindu.sct.model.stext.stext.ReactionEffect)8 ExecutionState (org.yakindu.sct.model.sexec.ExecutionState)7 If (org.yakindu.sct.model.sexec.If)7 Vertex (org.yakindu.sct.model.sgraph.Vertex)7