Search in sources :

Example 36 with Region

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);
}
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 37 with Region

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);
}
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 38 with Region

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

Example 39 with Region

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

Example 40 with Region

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

Aggregations

Region (org.yakindu.sct.model.sgraph.Region)93 Test (org.junit.Test)71 State (org.yakindu.sct.model.sgraph.State)63 Statechart (org.yakindu.sct.model.sgraph.Statechart)59 SGraphTestFactory._createRegion (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createRegion)57 SGraphTestFactory._createStatechart (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createStatechart)57 ExecutionFlow (org.yakindu.sct.model.sexec.ExecutionFlow)53 SGraphTestFactory._createState (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createState)51 ExecutionState (org.yakindu.sct.model.sexec.ExecutionState)48 StextTestFactory._createInterfaceScope (org.yakindu.sct.model.stext.test.util.StextTestFactory._createInterfaceScope)48 VariableDefinition (org.yakindu.sct.model.stext.stext.VariableDefinition)47 StextTestFactory._createVariableDefinition (org.yakindu.sct.model.stext.test.util.StextTestFactory._createVariableDefinition)47 InterfaceScope (org.yakindu.sct.model.stext.stext.InterfaceScope)41 Entry (org.yakindu.sct.model.sgraph.Entry)38 Sequence (org.yakindu.sct.model.sexec.Sequence)36 SCTTestUtil.findState (org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.findState)29 SGraphTestFactory._createEntry (org.yakindu.sct.model.sgraph.test.util.SGraphTestFactory._createEntry)29 Transition (org.yakindu.sct.model.sgraph.Transition)26 FinalState (org.yakindu.sct.model.sgraph.FinalState)25 Reaction (org.yakindu.sct.model.sexec.Reaction)22