Skip to content

Commit

Permalink
this improve compositions of transitions.
Browse files Browse the repository at this point in the history
  • Loading branch information
vahdat-ab committed May 18, 2017
1 parent 6f4b9f1 commit 2cc33d1
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 1 deletion.
Expand Up @@ -1177,14 +1177,18 @@ class UmpleInternalParser
return true;
} else if(tI.getEvent().compareWithAnotherEvent(tJ.getEvent())){
if (tI.getGuard()!=null){
if (tJ.getGuard()==null && !tJ.getNextState().getName().equals(tI.getNextState().getName())) {
getParseResult().addErrorMessage(new ErrorMessage(234,tJ.getPosition(),tJ.getEvent().getName(),n1,n2));
return true;
}
if (tI.getGuard().isEqualTo(tJ.getGuard()) && !tI.getNextState().getName().equals(tJ.getNextState().getName())) {
getParseResult().addErrorMessage(new ErrorMessage(234,tJ.getPosition(),tJ.getEvent().getName(),n1,n2));
return true;
}
} else {
if (tJ.getGuard()!=null) {
getParseResult().addErrorMessage(new ErrorMessage(234,tJ.getPosition(),tJ.getEvent().getName(),n1,n2));
return true;
return true;
}
}
}
Expand Down
28 changes: 28 additions & 0 deletions cruise.umple/test/cruise/umple/compiler/UmpleTraitTest.java
Expand Up @@ -1762,6 +1762,34 @@ public void stateMachineTraits0119Test() {
Assert.assertEquals(model.getUmpleClass("A").getStateMachine("mode").numberOfStates(),2);
}

@Test
public void stateMachineTraits0120Test() {
UmpleModel model = getModelByFilename("trait_test_data_0094.ump");
boolean result = false;
try {
model.run();
} catch (Exception e) {
result = e.getMessage().contains("234");
} finally {
Assert.assertTrue(result);
SampleFileWriter.destroy("traitTest.ump");
}
}

@Test
public void stateMachineTraits0121Test() {
UmpleModel model = getModelByFilename("trait_test_data_0095.ump");
boolean result = false;
try {
model.run();
} catch (Exception e) {
result = e.getMessage().contains("234");
} finally {
Assert.assertFalse(result);
SampleFileWriter.destroy("traitTest.ump");
}
}

// the last StateTest

// This is related to issue #656
Expand Down
@@ -0,0 +1,16 @@
trait T1{
sm{
s1{ e1 -> s2; }
s2{ e2 -> s1; }
}
}
class C1{
isA T1;
sm{
s1{
e1 [x>0]-> s3;
e3 -> s3;
}
s3{ }
}
}
@@ -0,0 +1,17 @@
trait T1{
sm{
s1{ e1 -> s2; }
s2{ e2 -> s1; }
}
}
class C1{
isA T1;
sm{
s1{
e1 [x>0]-> s2;
e3 -> s3;
}
s3{ }
s2{}
}
}

0 comments on commit 2cc33d1

Please sign in to comment.