|
@@ -104,11 +104,10 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void checkVariableDefinition() {
|
|
|
- Scope context = (Scope) parseExpression("interface if : var i : void",
|
|
|
- null, InterfaceScope.class.getSimpleName());
|
|
|
+ Scope context = (Scope) parseExpression("interface if : var i : void", null,
|
|
|
+ InterfaceScope.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(context);
|
|
|
- validationResult
|
|
|
- .assertErrorContains(STextJavaValidator.VARIABLE_VOID_TYPE);
|
|
|
+ validationResult.assertErrorContains(STextJavaValidator.VARIABLE_VOID_TYPE);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -117,29 +116,23 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkAssignmentExpression() {
|
|
|
|
|
|
- Scope context = (Scope) parseExpression(
|
|
|
- "interface: var i : integer = 42 var j : integer =23", null,
|
|
|
+ Scope context = (Scope) parseExpression("interface: var i : integer = 42 var j : integer =23", null,
|
|
|
InterfaceScope.class.getSimpleName());
|
|
|
|
|
|
- EObject expression = super.parseExpression("i += (i+=3) +4", context,
|
|
|
- Expression.class.getSimpleName());
|
|
|
+ EObject expression = super.parseExpression("i += (i+=3) +4", context, Expression.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(expression);
|
|
|
- validationResult
|
|
|
- .assertErrorContains(STextJavaValidator.ASSIGNMENT_EXPRESSION);
|
|
|
+ validationResult.assertErrorContains(STextJavaValidator.ASSIGNMENT_EXPRESSION);
|
|
|
|
|
|
- expression = super.parseExpression("i += (j+=3) +4", context,
|
|
|
- Expression.class.getSimpleName());
|
|
|
+ expression = super.parseExpression("i += (j+=3) +4", context, Expression.class.getSimpleName());
|
|
|
validationResult = tester.validate(expression);
|
|
|
validationResult.assertOK();
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void checkTimeEventSpecValueExpression() {
|
|
|
- EObject expression = super.parseExpression("after true s",
|
|
|
- ReactionTrigger.class.getSimpleName());
|
|
|
+ EObject expression = super.parseExpression("after true s", ReactionTrigger.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(expression);
|
|
|
- validationResult
|
|
|
- .assertErrorContains(STextJavaValidator.TIME_EXPRESSION);
|
|
|
+ validationResult.assertErrorContains(STextJavaValidator.TIME_EXPRESSION);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -153,10 +146,9 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkOperationArguments_FeatureCall() {
|
|
|
Scope scope = (Scope) parseExpression(
|
|
|
- "interface if : operation myOperation(param1 : integer, param2: boolean)",
|
|
|
- null, InterfaceScope.class.getSimpleName());
|
|
|
- EObject model = super.parseExpression("if.myOperation(5,true)",
|
|
|
- Expression.class.getSimpleName(), scope);
|
|
|
+ "interface if : operation myOperation(param1 : integer, param2: boolean)", null,
|
|
|
+ InterfaceScope.class.getSimpleName());
|
|
|
+ EObject model = super.parseExpression("if.myOperation(5,true)", Expression.class.getSimpleName(), scope);
|
|
|
AssertableDiagnostics validationResult = tester.validate(model);
|
|
|
validationResult.assertOK();
|
|
|
}
|
|
@@ -167,8 +159,7 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkOperationArguments_TypedElementReferenceExpression() {
|
|
|
Scope context = createInternalScope("internal: operation myOperation(param1 : integer, param2: boolean)");
|
|
|
- EObject model = super.parseExpression("myOperation(5,true)", context,
|
|
|
- Expression.class.getSimpleName());
|
|
|
+ EObject model = super.parseExpression("myOperation(5,true)", context, Expression.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(model);
|
|
|
validationResult.assertOK();
|
|
|
}
|
|
@@ -177,22 +168,17 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
* @see STextJavaValidator#checkGuardHasBooleanExpression(org.yakindu.sct.model.stext.stext.ReactionTrigger)
|
|
|
*/
|
|
|
@Test
|
|
|
- public void checkGuardExpression() {
|
|
|
- EObject expression = super.parseExpression("[3 * 3]",
|
|
|
- ReactionTrigger.class.getSimpleName());
|
|
|
+ public void checkGuard() {
|
|
|
+ EObject expression = super.parseExpression("[3 * 3]", ReactionTrigger.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(expression);
|
|
|
- validationResult
|
|
|
- .assertErrorContains(STextJavaValidator.GUARD_EXPRESSION);
|
|
|
+ validationResult.assertErrorContains(STextJavaValidator.GUARD_EXPRESSION);
|
|
|
|
|
|
Scope context = createInternalScope("internal: var myInt : integer var myBool : boolean = true)");
|
|
|
- expression = super.parseExpression("[myInt = 5]", context,
|
|
|
- ReactionTrigger.class.getSimpleName());
|
|
|
+ expression = super.parseExpression("[myInt = 5]", context, ReactionTrigger.class.getSimpleName());
|
|
|
validationResult = tester.validate(expression);
|
|
|
- validationResult
|
|
|
- .assertErrorContains(STextJavaValidator.GUARD_EXPRESSION);
|
|
|
+ validationResult.assertErrorContains(STextJavaValidator.GUARD_EXPRESSION);
|
|
|
|
|
|
- expression = super.parseExpression("[myInt <= 5 || !myBool ]", context,
|
|
|
- ReactionTrigger.class.getSimpleName());
|
|
|
+ expression = super.parseExpression("[myInt <= 5 || !myBool ]", context, ReactionTrigger.class.getSimpleName());
|
|
|
validationResult = tester.validate(expression);
|
|
|
validationResult.assertOK();
|
|
|
|
|
@@ -204,21 +190,18 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void checkFeatureCall() {
|
|
|
- Scope context = (Scope) parseExpression(
|
|
|
- "interface if : in event a : integer", null,
|
|
|
+ Scope context = (Scope) parseExpression("interface if : in event a : integer", null,
|
|
|
InterfaceScope.class.getSimpleName());
|
|
|
EObject model = super.parseExpression("if.a / raise if.a:1", context,
|
|
|
TransitionSpecification.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(model);
|
|
|
validationResult.assertOK();
|
|
|
|
|
|
- model = super.parseExpression("if / raise if.a:1", context,
|
|
|
- TransitionSpecification.class.getSimpleName());
|
|
|
+ model = super.parseExpression("if / raise if.a:1", context, TransitionSpecification.class.getSimpleName());
|
|
|
validationResult = tester.validate(model);
|
|
|
validationResult.assertError(FEATURE_CALL_TO_SCOPE);
|
|
|
|
|
|
- model = super.parseExpression("if.a / raise if", context,
|
|
|
- TransitionSpecification.class.getSimpleName());
|
|
|
+ model = super.parseExpression("if.a / raise if", context, TransitionSpecification.class.getSimpleName());
|
|
|
validationResult = tester.validate(model);
|
|
|
validationResult.assertError(FEATURE_CALL_TO_SCOPE);
|
|
|
}
|
|
@@ -230,26 +213,22 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkReactionTrigger() {
|
|
|
// ENTRY, EXIT not allowed in transitions
|
|
|
- Scope context = (Scope) parseExpression(
|
|
|
- "internal : event a : integer var myVar : integer", null,
|
|
|
+ Scope context = (Scope) parseExpression("internal : event a : integer var myVar : integer", null,
|
|
|
InternalScope.class.getSimpleName());
|
|
|
EObject model = super.parseExpression("entry / myVar = 5", context,
|
|
|
TransitionSpecification.class.getSimpleName());
|
|
|
AssertableDiagnostics validationResult = tester.validate(model);
|
|
|
validationResult.assertError(LOCAL_REACTIONS_NOT_ALLOWED);
|
|
|
|
|
|
- model = super.parseExpression("exit / myVar = 5", context,
|
|
|
- TransitionSpecification.class.getSimpleName());
|
|
|
+ model = super.parseExpression("exit / myVar = 5", context, TransitionSpecification.class.getSimpleName());
|
|
|
validationResult = tester.validate(model);
|
|
|
validationResult.assertError(LOCAL_REACTIONS_NOT_ALLOWED);
|
|
|
|
|
|
- model = super.parseExpression("oncycle / myVar = 5", context,
|
|
|
- TransitionSpecification.class.getSimpleName());
|
|
|
+ model = super.parseExpression("oncycle / myVar = 5", context, TransitionSpecification.class.getSimpleName());
|
|
|
validationResult = tester.validate(model);
|
|
|
validationResult.assertOK();
|
|
|
|
|
|
- model = super.parseExpression("always / myVar = 5", context,
|
|
|
- TransitionSpecification.class.getSimpleName());
|
|
|
+ model = super.parseExpression("always / myVar = 5", context, TransitionSpecification.class.getSimpleName());
|
|
|
validationResult = tester.validate(model);
|
|
|
validationResult.assertOK();
|
|
|
}
|
|
@@ -259,45 +238,36 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void checkReactionEffectActions() {
|
|
|
- Scope s1 = (InternalScope) parseExpression(
|
|
|
- "internal : var a : integer event e operation o () : void",
|
|
|
- null, InternalScope.class.getSimpleName());
|
|
|
- Scope s2 = (InterfaceScope) parseExpression(
|
|
|
- "interface if : var a : integer in event e operation o()",
|
|
|
- null, InterfaceScope.class.getSimpleName());
|
|
|
-
|
|
|
- EObject model = super.parseExpression("a", s1,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ Scope s1 = (InternalScope) parseExpression("internal : var a : integer event e operation o () : void", null,
|
|
|
+ InternalScope.class.getSimpleName());
|
|
|
+ Scope s2 = (InterfaceScope) parseExpression("interface if : var a : integer in event e operation o()", null,
|
|
|
+ InterfaceScope.class.getSimpleName());
|
|
|
+
|
|
|
+ EObject model = super.parseExpression("a", s1, ReactionEffect.class.getSimpleName());
|
|
|
AssertableDiagnostics result = tester.validate(model);
|
|
|
result.assertError(FEATURE_CALL_HAS_NO_EFFECT);
|
|
|
|
|
|
- model = super.parseExpression("1+3", s1,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ model = super.parseExpression("1+3", s1, ReactionEffect.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertError(FEATURE_CALL_HAS_NO_EFFECT);
|
|
|
|
|
|
- model = super.parseExpression("valueof(e)", s1,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ model = super.parseExpression("valueof(e)", s1, ReactionEffect.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertError(FEATURE_CALL_HAS_NO_EFFECT);
|
|
|
|
|
|
- model = super.parseExpression("o()", s1,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ model = super.parseExpression("o()", s1, ReactionEffect.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertOK();
|
|
|
|
|
|
- model = super.parseExpression("if.a", s2,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ model = super.parseExpression("if.a", s2, ReactionEffect.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertError(FEATURE_CALL_HAS_NO_EFFECT);
|
|
|
|
|
|
- model = super.parseExpression("valueof(if.e)", s2,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ model = super.parseExpression("valueof(if.e)", s2, ReactionEffect.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertError(FEATURE_CALL_HAS_NO_EFFECT);
|
|
|
|
|
|
- model = super.parseExpression("if.o", s2,
|
|
|
- ReactionEffect.class.getSimpleName());
|
|
|
+ model = super.parseExpression("if.o", s2, ReactionEffect.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertOK();
|
|
|
|
|
@@ -309,20 +279,17 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkEventDefinition() {
|
|
|
// No local declarations in interface scope
|
|
|
- EObject model = super.parseExpression(
|
|
|
- "interface MyInterface: event Event1", null,
|
|
|
+ EObject model = super.parseExpression("interface MyInterface: event Event1", null,
|
|
|
InterfaceScope.class.getSimpleName());
|
|
|
AssertableDiagnostics result = tester.validate(model);
|
|
|
result.assertErrorContains(LOCAL_DECLARATIONS);
|
|
|
// No in declarations in internal scope
|
|
|
- model = super.parseExpression("internal: in event Event1", null,
|
|
|
- InternalScope.class.getSimpleName());
|
|
|
+ model = super.parseExpression("internal: in event Event1", null, InternalScope.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertDiagnosticsCount(1);
|
|
|
result.assertErrorContains(STextJavaValidator.IN_OUT_DECLARATIONS);
|
|
|
// No out declarations in internal scope
|
|
|
- model = super.parseExpression("internal: out event Event1", null,
|
|
|
- InternalScope.class.getSimpleName());
|
|
|
+ model = super.parseExpression("internal: out event Event1", null, InternalScope.class.getSimpleName());
|
|
|
result = tester.validate(model);
|
|
|
result.assertDiagnosticsCount(1);
|
|
|
result.assertErrorContains(IN_OUT_DECLARATIONS);
|
|
@@ -333,13 +300,11 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void checkInterfaceScope() {
|
|
|
- EObject model = super.parseExpression(
|
|
|
- "interface: in event event1 interface: in event event2", null,
|
|
|
+ EObject model = super.parseExpression("interface: in event event1 interface: in event event2", null,
|
|
|
StatechartSpecification.class.getSimpleName());
|
|
|
AssertableDiagnostics result = tester.validate(model);
|
|
|
result.assertDiagnosticsCount(2);
|
|
|
- result.assertAll(errorCode(ONLY_ONE_INTERFACE),
|
|
|
- errorCode(ONLY_ONE_INTERFACE));
|
|
|
+ result.assertAll(errorCode(ONLY_ONE_INTERFACE), errorCode(ONLY_ONE_INTERFACE));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -372,8 +337,7 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void testAllChecksHaveTests() throws Exception {
|
|
|
- Iterable<Method> methods = Lists.newArrayList(STextJavaValidator.class
|
|
|
- .getMethods());
|
|
|
+ Iterable<Method> methods = Lists.newArrayList(STextJavaValidator.class.getMethods());
|
|
|
methods = Iterables.filter(methods, new Predicate<Method>() {
|
|
|
public boolean apply(Method input) {
|
|
|
return input.getAnnotation(Check.class) != null;
|
|
@@ -381,9 +345,7 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
});
|
|
|
for (Method checkMethod : methods) {
|
|
|
Method testMethod = getClass().getMethod(checkMethod.getName());
|
|
|
- assertNotNull(
|
|
|
- "Missing @Test Annotation for method "
|
|
|
- + checkMethod.getName(),
|
|
|
+ assertNotNull("Missing @Test Annotation for method " + checkMethod.getName(),
|
|
|
testMethod.getAnnotation(Test.class));
|
|
|
}
|
|
|
}
|
|
@@ -397,8 +359,7 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Entry) {
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -409,14 +370,12 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkUnusedExit() {
|
|
|
BasicDiagnostic diagnostics = new BasicDiagnostic();
|
|
|
- Statechart statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "UnusedExitPoint.sct");
|
|
|
+ Statechart statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR + "UnusedExitPoint.sct");
|
|
|
Iterator<EObject> iter = statechart.eAllContents();
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Exit) {
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -424,14 +383,12 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
assertError(diagnostics, EXIT_UNUSED);
|
|
|
|
|
|
diagnostics = new BasicDiagnostic();
|
|
|
- statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "UnusedDefaultExitPoint.sct");
|
|
|
+ statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR + "UnusedDefaultExitPoint.sct");
|
|
|
iter = statechart.eAllContents();
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Exit) {
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -443,14 +400,13 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
public void checkTransitionPropertySpec() {
|
|
|
// Test source state isn't composite
|
|
|
BasicDiagnostic diagnostics = new BasicDiagnostic();
|
|
|
- Statechart statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "TransitionEntrySpecNotComposite.sct");
|
|
|
+ Statechart statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
|
|
|
+ + "TransitionEntrySpecNotComposite.sct");
|
|
|
Iterator<EObject> iter = statechart.eAllContents();
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Transition) {
|
|
|
- assertTrue(validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>()));
|
|
|
+ assertTrue(validator.validate(element, diagnostics, new HashMap<Object, Object>()));
|
|
|
}
|
|
|
}
|
|
|
// Test target state isn't composite
|
|
@@ -458,20 +414,20 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
assertWarning(diagnostics, TRANSITION_ENTRY_SPEC_NOT_COMPOSITE);
|
|
|
|
|
|
diagnostics = new BasicDiagnostic();
|
|
|
- statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "TransitionExitSpecNotComposite.sct");
|
|
|
+ statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
|
|
|
+ + "TransitionExitSpecNotComposite.sct");
|
|
|
iter = statechart.eAllContents();
|
|
|
|
|
|
- // create and add triggers to all transitions to prevent to trigger additional warnings
|
|
|
- //(see Check in SGrapJavaValidator transitionsWithNoGuard)
|
|
|
- Trigger trigger = StextFactoryImpl.init().createDefaultTrigger();
|
|
|
-
|
|
|
+ // create and add triggers to all transitions to prevent to trigger
|
|
|
+ // additional warnings
|
|
|
+ // (see Check in SGrapJavaValidator transitionsWithNoGuard)
|
|
|
+ Trigger trigger = StextFactoryImpl.init().createDefaultTrigger();
|
|
|
+
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Transition) {
|
|
|
((Transition) element).setTrigger(trigger);
|
|
|
- assertTrue(validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>()));
|
|
|
+ assertTrue(validator.validate(element, diagnostics, new HashMap<Object, Object>()));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -480,15 +436,14 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
|
|
|
// Test exit spec is used on multiple transition siblings.
|
|
|
diagnostics = new BasicDiagnostic();
|
|
|
- statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "TransitionExitSpecOnMultipleSiblings.sct");
|
|
|
+ statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
|
|
|
+ + "TransitionExitSpecOnMultipleSiblings.sct");
|
|
|
iter = statechart.eAllContents();
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Transition) {
|
|
|
((Transition) element).setTrigger(trigger);
|
|
|
- assertTrue(validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>()));
|
|
|
+ assertTrue(validator.validate(element, diagnostics, new HashMap<Object, Object>()));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -497,15 +452,14 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
|
|
|
// Test transition unbound named exit point spec.
|
|
|
diagnostics = new BasicDiagnostic();
|
|
|
- statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "TransitionNotExistingNamedExitPoint.sct");
|
|
|
+ statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
|
|
|
+ + "TransitionNotExistingNamedExitPoint.sct");
|
|
|
iter = statechart.eAllContents();
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Transition) {
|
|
|
((Transition) element).setTrigger(trigger);
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -516,24 +470,23 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
@Test
|
|
|
public void checkUnboundEntryPoints() {
|
|
|
BasicDiagnostic diagnostics = new BasicDiagnostic();
|
|
|
- Statechart statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "UnboundDefaultEntryPoints.sct");
|
|
|
+ Statechart statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
|
|
|
+ + "UnboundDefaultEntryPoints.sct");
|
|
|
Iterator<EObject> iter = statechart.eAllContents();
|
|
|
-
|
|
|
- // create and add triggers to all transitions to prevent to trigger additional warnings
|
|
|
- //(see Check in SGrapJavaValidator transitionsWithNoGuard)
|
|
|
+
|
|
|
+ // create and add triggers to all transitions to prevent to trigger
|
|
|
+ // additional warnings
|
|
|
+ // (see Check in SGrapJavaValidator transitionsWithNoGuard)
|
|
|
Trigger trigger = StextFactoryImpl.init().createDefaultTrigger();
|
|
|
-
|
|
|
+
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Transition) {
|
|
|
((Transition) element).setTrigger(trigger);
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
if (element instanceof State) {
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -542,20 +495,17 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
assertError(diagnostics, REGION_UNBOUND_DEFAULT_ENTRY_POINT);
|
|
|
|
|
|
diagnostics = new BasicDiagnostic();
|
|
|
- statechart = AbstractTestModelsUtil
|
|
|
- .loadStatechart(VALIDATION_TESTMODEL_DIR + "UnboundEntryPoints02.sct");
|
|
|
+ statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR + "UnboundEntryPoints02.sct");
|
|
|
iter = statechart.eAllContents();
|
|
|
|
|
|
while (iter.hasNext()) {
|
|
|
EObject element = iter.next();
|
|
|
if (element instanceof Transition) {
|
|
|
((Transition) element).setTrigger(trigger);
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
if (element instanceof State) {
|
|
|
- validator.validate(element, diagnostics,
|
|
|
- new HashMap<Object, Object>());
|
|
|
+ validator.validate(element, diagnostics, new HashMap<Object, Object>());
|
|
|
}
|
|
|
}
|
|
|
assertIssueCount(diagnostics, 4);
|
|
@@ -563,24 +513,19 @@ public class STextJavaValidatorTest extends AbstractSTextTest {
|
|
|
|
|
|
protected void assertError(BasicDiagnostic diag, String message) {
|
|
|
Diagnostic d = issueByName(diag, message);
|
|
|
- assertNotNull("Issue '" + message + "' does not exist.",
|
|
|
- issueByName(diag, message));
|
|
|
- assertEquals("Issue '" + message + "' is no error.", Diagnostic.ERROR,
|
|
|
- d.getSeverity());
|
|
|
+ assertNotNull("Issue '" + message + "' does not exist.", issueByName(diag, message));
|
|
|
+ assertEquals("Issue '" + message + "' is no error.", Diagnostic.ERROR, d.getSeverity());
|
|
|
}
|
|
|
|
|
|
protected void assertWarning(BasicDiagnostic diag, String message) {
|
|
|
Diagnostic d = issueByName(diag, message);
|
|
|
- assertNotNull("Issue '" + message + "' does not exist.",
|
|
|
- issueByName(diag, message));
|
|
|
- assertEquals("Issue '" + message + "' is no warning.",
|
|
|
- Diagnostic.WARNING, d.getSeverity());
|
|
|
+ assertNotNull("Issue '" + message + "' does not exist.", issueByName(diag, message));
|
|
|
+ assertEquals("Issue '" + message + "' is no warning.", Diagnostic.WARNING, d.getSeverity());
|
|
|
}
|
|
|
|
|
|
protected void assertIssueCount(BasicDiagnostic diag, int count) {
|
|
|
int c = diag.getChildren().size();
|
|
|
- assertEquals("expected " + count + " issue(s) but were " + c + " ["
|
|
|
- + diag.toString() + "]", count, c);
|
|
|
+ assertEquals("expected " + count + " issue(s) but were " + c + " [" + diag.toString() + "]", count, c);
|
|
|
}
|
|
|
|
|
|
protected Diagnostic issueByName(BasicDiagnostic diag, String message) {
|