Parcourir la source

refactoring of sgraph basic tests

- split in own validators
- separate tests
- use validation infrastructure
andreas muelder il y a 7 ans
Parent
commit
d2964b3375
14 fichiers modifiés avec 179 ajouts et 238 suppressions
  1. 10 5
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/EntryExitValidator.java
  2. 2 1
      test-plugins/org.yakindu.sct.model.sgraph.test/build.properties
  3. 8 8
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/AllTests.java
  4. 1 1
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/SGraphJavaValidatorTester.java
  5. 5 2
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/AbstractSGraphValidatorTest.java
  6. 7 1
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/ChoiceValidatorTest.java
  7. 19 34
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/EntryExitValidatorTest.java
  8. 7 1
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/FinalStateValidatorTest.java
  9. 7 1
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/StateValidatorTest.java
  10. 7 1
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/StatechartValidatorTest.java
  11. 92 0
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/validation/SynchronizationValidatorTest.java
  12. 7 1
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/TransitionValidatorTest.java
  13. 7 13
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/VertexValidatorTest.java
  14. 0 169
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/SynchronizationValidatorTest.java

+ 10 - 5
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/EntryExitValidator.java

@@ -51,6 +51,12 @@ public class EntryExitValidator extends AbstractSGraphValidator {
 	private static final String ENTRY_NO_TRIGGER_MSG = "Outgoing transitions from entry points can not have a trigger or guard.";
 	public static final String ENTRY_NO_TRIGGER_CODE = "entry.no.trigger";
 
+	private static final String REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY_MSG = "The region can't be entered using the shallow history. Add a default entry node.";
+	public static final String REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY_CODE = "entry.region.default";
+
+	private static final String REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY_MSG = "The region can't be entered using the shallow history. Add a transition from default entry to a state.";
+	public static final String REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY_CODE = "The region can't be entered using the shallow history. Add a transition from default entry to a state.";
+
 	@Check(CheckType.FAST)
 	public void initialEntryWithoutIncomingTransitions(Entry entry) {
 		if (entry.getIncomingTransitions().size() > 0 && entry.getKind().equals(EntryKind.INITIAL)) {
@@ -97,9 +103,6 @@ public class EntryExitValidator extends AbstractSGraphValidator {
 		}
 	}
 
-	private static final String ISSUE_REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY = "The region can't be entered using the shallow history. Add a default entry node.";
-	private static final String ISSUE_REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY = "The region can't be entered using the shallow history. Add a transition from default entry to a state.";
-
 	@Check(CheckType.FAST)
 	public void regionCantBeEnteredUsingShallowHistory(Entry e) {
 		if (e.getKind() == EntryKind.SHALLOW_HISTORY) {
@@ -121,9 +124,11 @@ public class EntryExitValidator extends AbstractSGraphValidator {
 					}
 				}
 				if (defaultEntry == null) {
-					error(ISSUE_REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY, r, null, -1);
+					error(REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY_MSG, r, null, -1,
+							REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY_CODE);
 				} else if (defaultEntry.getOutgoingTransitions().size() != 1) {
-					error(ISSUE_REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY, r, null, -1);
+					error(REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY_MSG, r, null, -1,
+							REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY_CODE);
 				}
 			}
 

+ 2 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/build.properties

@@ -1,4 +1,5 @@
 source.. = src/
 output.. = bin/
 bin.includes = .,\
-               META-INF/
+               META-INF/,\
+               testmodels/

+ 8 - 8
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/AllTests.java

@@ -13,14 +13,14 @@ package org.yakindu.sct.model.sgraph.test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
-import org.yakindu.sct.model.sgraph.validation.test.ChoiceValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.EntryExitValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.FinalStateValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.StateValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.StatechartValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.SynchronizationValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.TransitionValidatorTest;
-import org.yakindu.sct.model.sgraph.validation.test.VertexValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.ChoiceValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.EntryExitValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.FinalStateValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.StateValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.StatechartValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.SynchronizationValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.TransitionValidatorTest;
+import org.yakindu.sct.model.sgraph.test.validation.VertexValidatorTest;
 
 @RunWith(value = Suite.class)
 @SuiteClasses(value = { StatechartValidatorTest.class, ChoiceValidatorTest.class, EntryExitValidatorTest.class,

+ 1 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/SGraphJavaValidatorTester.java

@@ -8,7 +8,7 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.util;
 
 import org.eclipse.emf.ecore.impl.EValidatorRegistryImpl;
 import org.eclipse.emf.ecore.util.Diagnostician;

+ 5 - 2
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/AbstractSGraphValidatorTest.java

@@ -8,7 +8,7 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -29,7 +29,10 @@ import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.test.util.SGraphTestInjectorProvider;
 import org.yakindu.sct.model.stext.stext.StextFactory;
 
-// Remove the deprecated API when Mars support is dropped
+/**
+ * Abstract base class for all Validator Tests
+ *
+ */
 @SuppressWarnings("deprecation")
 @RunWith(XtextRunner.class)
 @InjectWith(SGraphTestInjectorProvider.class)

+ 7 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/ChoiceValidatorTest.java

@@ -8,7 +8,7 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.yakindu.sct.model.sgraph.validation.ChoiceValidator.OUTGOING_TRANSITION_COUNT_CODE;
 
@@ -17,10 +17,16 @@ import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.ChoiceValidator;
 
 import com.google.inject.Inject;
 
+/**
+ * 
+ * Tests for {@link ChoiceValidator}
+ *
+ */
 public class ChoiceValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject

+ 19 - 34
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/EntryExitValidatorTest.java

@@ -8,13 +8,11 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 import static org.yakindu.sct.model.sgraph.validation.EntryExitValidator.*;
 
-import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.xtext.junit4.validation.AssertableDiagnostics;
 import org.junit.Test;
 import org.yakindu.sct.model.sgraph.Entry;
@@ -24,11 +22,16 @@ import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.EntryExitValidator;
 
-import com.google.common.collect.Iterables;
 import com.google.inject.Inject;
 
+/**
+ * 
+ * Tests for {@link EntryExitValidator}
+ *
+ */
 public class EntryExitValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject
@@ -97,11 +100,11 @@ public class EntryExitValidatorTest extends AbstractSGraphValidatorTest {
 
 		entry.setKind(EntryKind.DEEP_HISTORY);
 		tester.validate(entry).assertError(INITIAL_ENTRY_ONE_OUT_TRANSITION_CODE);
-		
+
 		entry.setKind(EntryKind.SHALLOW_HISTORY);
 		tester.validate(entry).assertError(INITIAL_ENTRY_ONE_OUT_TRANSITION_CODE);
 	}
-	
+
 	/**
 	 * An entry should not have more than one outgoing transition
 	 */
@@ -124,7 +127,6 @@ public class EntryExitValidatorTest extends AbstractSGraphValidatorTest {
 		tester.validate(entry).assertError(INITIAL_ENTRY_ONE_OUT_TRANSITION_CODE);
 	}
 
-
 	/**
 	 * An exit node should have at leat one incoming transition.
 	 */
@@ -188,51 +190,34 @@ public class EntryExitValidatorTest extends AbstractSGraphValidatorTest {
 
 		tester.validate(exit).assertOK();
 	}
-	
+
 	@Test
 	public void disallowTrigger() {
 		State state = createState();
-		Region region  = ((Region)state.eContainer());
+		Region region = ((Region) state.eContainer());
 		Entry entry = factory.createEntry();
 		region.getVertices().add(entry);
 		Transition trans = createTransition(entry, state);
 		trans.setTrigger(sTextFactory.createReactionTrigger());
 		tester.validate(entry).assertError(ENTRY_NO_TRIGGER_CODE);
 	}
-	
+
 	@Test
 	public void regionCantBeEnteredUsingShallowHistory() {
 		Statechart statechart = loadStatechart("RegionCantBeEnteredUsingShallowHistory.sct");
 		AssertableDiagnostics result = tester.validate(statechart);
-		Iterable<Diagnostic> allDiagnostics = result.getAllDiagnostics();
 		result.assertDiagnosticsCount(2);
-//		result.assertError(issueCode);;
-		
-//
-//		Diagnostic issue = issueByName(diagnostics,
-//				ISSUE_REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY);
-//		assertTrue(issue.getSeverity() == Diagnostic.ERROR);
-//		assertEquals("r_a", ((NamedElement) issue.getData().get(0)).getName());
-//
-//		issue = issueByName(diagnostics,
-//				ISSUE_REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY);
-//		assertTrue(issue.getSeverity() == Diagnostic.ERROR);
-//		assertEquals("r_c", ((NamedElement) issue.getData().get(0)).getName());
+
+		result.assertAny(
+				AssertableDiagnostics.errorCode(REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NO_DEFAULT_ENTRY_CODE));
+		result.assertAny(AssertableDiagnostics
+				.errorCode(REGION_CANT_BE_ENTERED_USING_SHALLOW_HISTORY_NON_CONNECTED_DEFAULT_ENTRY_CODE));
 	}
-	
+
 	@Test
 	public void validTransitionToInnerChoice() {
 		Statechart statechart = loadStatechart("ValidTransitionToInnerChoice.sct");
-		tester.validate(statechart);
-		// Iterator<EObject> iter = statechart.eAllContents();
-		// while (iter.hasNext()) {
-		// EObject element = iter.next();
-		// if (element instanceof State) {
-		// validator.validate(element, diagnostics, new HashMap<Object, Object>());
-		// }
-		// }
-		//
-		// assertIssueCount(diagnostics, 0);
+		tester.validate(statechart).assertOK();
 	}
 
 	@Override

+ 7 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/FinalStateValidatorTest.java

@@ -8,7 +8,7 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.yakindu.sct.model.sgraph.validation.FinalStateValidator.FINAL_STATE_NO_OUT_TRANSITION_CODE;
 
@@ -17,10 +17,16 @@ import org.yakindu.sct.model.sgraph.FinalState;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.FinalStateValidator;
 
 import com.google.inject.Inject;
 
+/**
+ *
+ * Tests for {@link FinalStateValidator}
+ *
+ */
 public class FinalStateValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject

+ 7 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/StateValidatorTest.java

@@ -8,17 +8,23 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.yakindu.sct.model.sgraph.validation.StateValidator.ISSUE_STATE_NAME_CODE;
 
 import org.eclipse.xtext.junit4.validation.AssertableDiagnostics;
 import org.junit.Test;
 import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.StateValidator;
 
 import com.google.inject.Inject;
 
+/**
+ *
+ * Tests for {@link StateValidator}
+ *
+ */
 public class StateValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject

+ 7 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/StatechartValidatorTest.java

@@ -8,17 +8,23 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.yakindu.sct.model.sgraph.validation.StatechartValidator.STATECHART_NAME_VALID_IDENTIFIER_CODE;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sgraph.SGraphFactory;
 import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.StatechartValidator;
 
 import com.google.inject.Inject;
 
+/**
+ * 
+ * Tests for {@link StatechartValidator}
+ *
+ */
 public class StatechartValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject

+ 92 - 0
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/validation/SynchronizationValidatorTest.java

@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2012-2018 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.model.sgraph.test.validation;
+
+import org.eclipse.xtext.junit4.validation.AssertableDiagnostics;
+import org.junit.Test;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
+import org.yakindu.sct.model.sgraph.validation.SynchronizationValidator;
+import static org.yakindu.sct.model.sgraph.validation.SynchronizationValidator.*;
+import static org.eclipse.xtext.junit4.validation.AssertableDiagnostics.*;
+import com.google.inject.Inject;
+
+/**
+ *
+ * Tests for {@link SynchronizationValidator}
+ *
+ */
+public class SynchronizationValidatorTest extends AbstractSGraphValidatorTest {
+
+	@Inject
+	protected SGraphJavaValidatorTester<SynchronizationValidator> tester;
+
+	@Test
+	public void synchronizationTransitionCount() {
+		Statechart statechart = loadStatechart("SynchronizationTransitionCount.sct");
+		AssertableDiagnostics diagnostics = tester.validate(statechart);
+		diagnostics.assertDiagnosticsCount(2);
+		diagnostics.assertAny(errorCode(SYNCHRONIZATION_TRANSITION_COUNT_CODE));
+	}
+
+	@Test
+	public void synchronizationOutgoingTransitionCount() {
+		Statechart statechart = loadStatechart("SyncOutgoingTransition.sct");
+		tester.validate(statechart).assertError(SYNCHRONIZATION_TRANSITION_OUTGOING_CODE);
+	}
+
+	@Test
+	public void orthogonalSourceStates() {
+		Statechart statechart = loadStatechart("OrthogonalRegion01.sct");
+		tester.validate(statechart).assertOK();
+	}
+
+	@Test
+	public void orthogonalTargetStates() {
+		Statechart statechart = loadStatechart("OrthogonalRegion01.sct");
+		tester.validate(statechart).assertOK();
+	}
+
+	@Test
+	public void syncLocation_Issue58() {
+		Statechart statechart = loadStatechart("SyncLocation_Issue58.sct");
+		tester.validate(statechart).assertOK();
+	}
+
+	@Test
+	public void orthogonalTargetStates_StateInParentStateRegion() {
+		Statechart statechart = loadStatechart("NotOrthogonalRegion01.sct");
+		AssertableDiagnostics diagnostics = tester.validate(statechart);
+		diagnostics.assertDiagnosticsCount(2);
+		diagnostics.assertAny(errorCode(SYNCHRONIZATION_SOURCE_ORTHOGONAL_CODE));
+		diagnostics.assertAny(errorCode(SYNCHRONIZATION_TARGET_ORTHOGONAL_CODE));
+	}
+
+	@Test
+	public void orthogonalTargetStates_StateInTopLevelRegion() {
+		Statechart statechart = loadStatechart("NotOrthogonalRegion02.sct");
+		AssertableDiagnostics diagnostics = tester.validate(statechart);
+		diagnostics.assertDiagnosticsCount(2);
+		diagnostics.assertAny(errorCode(SYNCHRONIZATION_SOURCE_ORTHOGONAL_CODE));
+		diagnostics.assertAny(errorCode(SYNCHRONIZATION_TARGET_ORTHOGONAL_CODE));
+	}
+
+	@Test
+	public void orthogonalSynchronizedTransition() {
+		Statechart statechart = loadStatechart("NotOrthogonalRegion03.sct");
+		tester.validate(statechart).assertAny(errorCode(SYNCHRONIZATION_SOURCE_TARGET_PARENT_REGION_CODE));
+	}
+
+	protected Statechart loadStatechart(String modelName) {
+		return super.loadStatechart("synchronization/" + modelName);
+	}
+
+}

+ 7 - 1
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/TransitionValidatorTest.java

@@ -8,17 +8,23 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.yakindu.sct.model.sgraph.validation.TransitionValidator.INITIAL_ENTRY_WITH_TRANSITION_TO_CONTAINER_CODE;
 import static org.yakindu.sct.model.sgraph.validation.TransitionValidator.TRANSITION_SOURCE_TARGET_NOT_ORTHOGONAL_CODE;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.TransitionValidator;
 
 import com.google.inject.Inject;
 
+/**
+ *
+ * Tests for {@link TransitionValidator}
+ *
+ */
 public class TransitionValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject

+ 7 - 13
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/VertexValidatorTest.java

@@ -8,7 +8,7 @@
  * Contributors:
  *     committers of YAKINDU - initial API and implementation
  */
-package org.yakindu.sct.model.sgraph.validation.test;
+package org.yakindu.sct.model.sgraph.test.validation;
 
 import static org.yakindu.sct.model.sgraph.validation.VertexValidator.VERTEX_REACHABLE_CODE;
 
@@ -20,10 +20,16 @@ import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.test.util.SGraphJavaValidatorTester;
 import org.yakindu.sct.model.sgraph.validation.VertexValidator;
 
 import com.google.inject.Inject;
 
+/**
+ *
+ * Tests for {@link VertexValidator}
+ *
+ */
 public class VertexValidatorTest extends AbstractSGraphValidatorTest {
 
 	@Inject
@@ -61,22 +67,16 @@ public class VertexValidatorTest extends AbstractSGraphValidatorTest {
 	@Test
 	public void vertexNotReachable_AcceptThroughSubentry() {
 		State state = createState();
-
 		State stateA = factory.createState();
-
 		Region subRegion = factory.createRegion();
 		state.getRegions().add(subRegion);
-
 		State stateC = factory.createState();
 		subRegion.getVertices().add(stateC);
-
 		Entry entry = factory.createEntry();
 		subRegion.getVertices().add(entry);
-
 		Transition t1 = factory.createTransition();
 		t1.setSource(stateA);
 		t1.setTarget(entry);
-
 		Transition t2 = factory.createTransition();
 		t2.setSource(entry);
 		t2.setTarget(stateC);
@@ -90,22 +90,16 @@ public class VertexValidatorTest extends AbstractSGraphValidatorTest {
 	@Test
 	public void vertexNotReachable_AcceptThroughSubchoice() {
 		State state = createState();
-
 		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);

+ 0 - 169
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/validation/test/SynchronizationValidatorTest.java

@@ -1,169 +0,0 @@
-/**
- * Copyright (c) 2012-2018 committers of YAKINDU and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     committers of YAKINDU - initial API and implementation
- */
-package org.yakindu.sct.model.sgraph.validation.test;
-
-import org.junit.Test;
-import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.sgraph.validation.SynchronizationValidator;
-
-import com.google.inject.Inject;
-
-public class SynchronizationValidatorTest extends AbstractSGraphValidatorTest {
-
-	@Inject
-	protected SGraphJavaValidatorTester<SynchronizationValidator> tester;
-
-	@Test
-	public void synchronizationTransitionCount() {
-		Statechart statechart = loadStatechart("SynchronizationTransitionCount.sct");
-		tester.validate(statechart);
-		// Iterator<EObject> iter = statechart.eAllContents();
-		// while (iter.hasNext()) {
-		// EObject element = iter.next();
-		// if (element instanceof Synchronization) {
-		// assertFalse(validator.validate(element, diagnostics, new HashMap<Object,
-		// Object>()));
-		// }
-		// }
-		//
-		// assertIssueCount(diagnostics, 2);
-		// assertError(diagnostics, ISSUE_SYNCHRONIZATION_TRANSITION_COUNT);
-	}
-
-	@Test
-	public void synchronizationOutgoingTransitionCount() {
-		Statechart statechart = loadStatechart("SyncOutgoingTransition.sct");
-		tester.validate(statechart);
-//		State state = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "StateB");
-//		Synchronization sync = (Synchronization) state.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 1);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_TRANSITION_OUTGOING);
-	}
-
-	@Test
-	public void orthogonalTargetStates_StateInParentStateRegion() {
-		Statechart statechart = loadStatechart("NotOrthogonalRegion01.sct");
-
-		tester.validate(statechart);
-//		State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "B");
-//		Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 1);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_ORTHOGONAL);
-	}
-
-	@Test
-	public void orthogonalTargetStates_StateInTopLevelRegion() {
-		Statechart statechart = loadStatechart("NotOrthogonalRegion02.sct");
-		tester.validate(statechart);
-//		State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "B");
-//		Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 1);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_TARGET_STATES_NOT_ORTHOGONAL);
-	}
-
-	@Test
-	public void orthogonalSynchronizedTransition() {
-		Statechart statechart = loadStatechart("NotOrthogonalRegion03.sct");
-		tester.validate(statechart);
-
-//		State stateB = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "B");
-//		Synchronization sync = (Synchronization) stateB.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 2);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_SOURCE_TARGET_STATES_PARENT_REGION);
-	}
-
-	@Test
-	public void orthogonalSourceStates() {
-		Statechart statechart = loadStatechart("OrthogonalRegion01.sct");
-		tester.validate(statechart);
-		
-//		State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "AA");
-//		Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertTrue(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertNoIssues(diagnostics);
-	}
-
-	@Test
-	public void orthogonalSourceStates_StateInParentStateRegion() {
-		Statechart statechart = loadStatechart("NotOrthogonalRegion01.sct");
-		tester.validate(statechart);
-			
-//		State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "AA");
-//		Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 1);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL);
-	}
-
-	@Test
-	public void orthogonalSourceStates_StateInTopLevelRegion() {
-		Statechart statechart = loadStatechart("NotOrthogonalRegion02.sct");
-		tester.validate(statechart);
-//		State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "AA");
-//		Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 1);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_SOURCE_STATES_NOT_ORTHOGONAL);
-	}
-
-	@Test
-	public void orthogonalTargetStates() {
-		Statechart statechart = loadStatechart("OrthogonalRegion01.sct");
-		tester.validate(statechart);
-		
-//		State b = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "B");
-//		Synchronization sync = (Synchronization) b.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertTrue(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertNoIssues(diagnostics);
-	}
-
-	@Test
-	public void orthogonalSynchronizedTransition_Source() {
-		Statechart statechart = loadStatechart("NotOrthogonalRegion03.sct");
-		tester.validate(statechart);
-		
-//		State stateC = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "C");
-//		Synchronization sync = (Synchronization) stateC.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertFalse(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertIssueCount(diagnostics, 2);
-//		assertError(diagnostics, ISSUE_SYNCHRONIZATION_SOURCE_TARGET_STATES_PARENT_REGION);
-	}
-
-	@Test
-	public void syncLocation_Issue58() {
-		Statechart statechart = loadStatechart("SyncLocation_Issue58.sct");
-		tester.validate(statechart);
-		
-//		State state = firstNamed(EcoreUtil2.eAllOfType(statechart, State.class), "AA");
-//		Synchronization sync = (Synchronization) state.getOutgoingTransitions().get(0).getTarget();
-//
-//		assertTrue(validator.validate(sync, diagnostics, new HashMap<Object, Object>()));
-//		assertNoIssues(diagnostics);
-	}
-
-	protected Statechart loadStatechart(String modelName) {
-		return super.loadStatechart("synchronization/" + modelName);
-	}
-
-}