Back-migrate new test cases

Change-Id: I5d9801087d187e8f130699f0fad2898e9201c19b
diff --git a/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF
index 9d36c26..3f13509 100644
--- a/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF
@@ -25,10 +25,6 @@
  org.eclipse.emf.query.ocl;bundle-version="2.0.0",
  org.junit;bundle-version="4.0.0",
  org.eclipse.debug.core;bundle-version="3.10.100",
- org.junit.jupiter.api,
- org.junit.jupiter.engine,
- org.junit.jupiter.migrationsupport,
- org.junit.jupiter.params,
  org.junit.platform.commons,
  org.junit.platform.engine,
  org.junit.platform.launcher,
@@ -36,3 +32,4 @@
  org.junit.platform.suite.api
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.debug.core
+Automatic-Module-Name: org.eclipse.emf.henshin.tests
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CModuleTests.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CModuleTests.java
index fbf6726..3a171ff 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CModuleTests.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CModuleTests.java
@@ -1,9 +1,9 @@
 package org.eclipse.emf.henshin.tests.compact;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.util.List;
@@ -22,11 +22,10 @@
 import org.eclipse.emf.henshin.model.compact.CRule;
 import org.eclipse.emf.henshin.model.compact.CUnit;
 import org.eclipse.emf.henshin.model.resource.HenshinResourceSet;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.Test;
 
-class CModuleTests {
+public class CModuleTests {
 	
 	static String path;
 	
@@ -39,8 +38,8 @@
 	
 	CModule mod;
 	
-	@BeforeAll
-	public static void globalSetup() {
+	@Before
+	public void globalSetup() {
 		path = "src/org/eclipse/emf/henshin/tests/compact/";
 		res = new HenshinResourceSet(path);
 		pack = res.registerDynamicEPackages("bank.ecore").get(0);
@@ -63,48 +62,48 @@
 		u.setName("unit");
 	}
 	
-	@BeforeEach
+	@Before
 	public void localSetup() {
 		mod = new CModule("module");
 	}
 	
 
 	@Test
-	void createModuleTest() {
+	public void createModuleTest() {
 		mod = new CModule("module");
 		assertNotNull(mod);
 		assertEquals(mod.getModule().getName(),"module");
 	}
 	
 	@Test
-	void addImportTest() {
+	public void addImportTest() {
 		assertTrue(mod.getModule().getImports().isEmpty());
 		mod.addImport(pack);
 		assertEquals(mod.getModule().getImports().get(0),pack);	
 		}
 	
 	@Test
-	void addImportFromFile() {
+	public void addImportFromFile() {
 		assertTrue(mod.getModule().getImports().isEmpty());
 		mod.addImportsFromFile(path+"bank.ecore");
 		assertTrue(!mod.getModule().getImports().isEmpty());
 	}
 	
 	@Test
-	void reuseModuleTest() {
+	public void reuseModuleTest() {
 		mod = new CModule(m);
 		assertEquals(mod.getModule(),m);
 	}
 	
 	@Test
-	void loadModuleTest() {
+	public void loadModuleTest() {
 		mod = CModule.loadFromFile(path+"bank.henshin");
 		//.equals is not implemented for Module-Class. .toString is. Therefore the Strings are compared rather than the Modules themselves.
 		assertEquals(mod.getModule().toString(),m.toString());
 	}
 	
 	@Test
-	void saveTestWithName() {
+	public void saveTestWithName() {
 		mod = new CModule(m);
 		assertTrue(!moduleFile2.exists());
 		mod.save(path+"test");
@@ -112,7 +111,7 @@
 	}
 	
 	@Test
-	void saveTestWithoutName() {
+	public void saveTestWithoutName() {
 		mod = new CModule(m);
 		mod.getModule().setName("module");
 		assertTrue(!moduleFile.exists());
@@ -121,7 +120,7 @@
 	}
 	
 	@Test
-	void addRuleTest() {
+	public void addRuleTest() {
 		CRule c = mod.addRule(r);
 		assertTrue(!mod.getModule().getUnits().isEmpty());
 		assertNotNull(c);
@@ -130,7 +129,7 @@
 	}
 	
 	@Test
-	void addUnitTest() {
+	public void addUnitTest() {
 		CUnit cu = mod.addUnit(u);
 		assertTrue(mod.getModule().getUnits().contains(u));
 		assertNotNull(cu);
@@ -139,7 +138,7 @@
 	}
 	
 	@Test
-	void ruleCreationTest() {
+	public void ruleCreationTest() {
 		CRule cr = mod.createRule("rule");
 		assertNotNull(cr);
 		assertNotNull(cr.getUnit());
@@ -147,7 +146,7 @@
 	}
 	
 	@Test
-	void loopUnitCreationTest() {
+	public void loopUnitCreationTest() {
 		CRule cr = mod.addRule(r);
 		mod.createLoop(cr);
 		assertTrue(mod.getModule().getUnits().size()==2);
@@ -156,7 +155,7 @@
 	}
 	
 	@Test
-	void iteratedUnitCreationTest() {
+	public void iteratedUnitCreationTest() {
 		CRule cr = mod.addRule(r);
 		mod.createIteration(cr,"2");
 		assertTrue(mod.getModule().getUnits().size()==2);
@@ -165,7 +164,7 @@
 	}
 	
 	@Test
-	void conditionalUnitCreationTestWithElse() {
+	public void conditionalUnitCreationTestWithElse() {
 		CRule cr = mod.addRule(r);
 		mod.createConditional(cr,cr,cr,"conditional");
 		assertTrue(mod.getModule().getUnits().size()==2);
@@ -177,7 +176,7 @@
 	}
 	
 	@Test
-	void conditionalUnitCreationTestWithoutElse() {
+	public void conditionalUnitCreationTestWithoutElse() {
 		CRule cr = mod.addRule(r);
 		mod.createConditional(cr,cr,null,"conditional");
 		assertTrue(mod.getModule().getUnits().size()==2);
@@ -189,7 +188,7 @@
 	}
 	
 	@Test
-	void priorityUnitCreationTest() {
+	public void priorityUnitCreationTest() {
 		CRule cr = mod.addRule(r);
 		assertNull(mod.getModule().getUnit("priority"));
 		mod.addToPriority(cr, "priority");
@@ -199,7 +198,7 @@
 	}
 	
 	@Test
-	void priorityUnitAddTest() {
+	public void priorityUnitAddTest() {
 		CRule cr = mod.addRule(r);
 		mod.addToPriority(cr, "priority");
 		assertNotNull(mod.getModule().getUnit("priority"));
@@ -209,7 +208,7 @@
 	}
 	
 	@Test
-	void sequentialUnitCreationTest() {
+	public void sequentialUnitCreationTest() {
 		CRule cr = mod.addRule(r);
 		assertNull(mod.getModule().getUnit("sequence"));
 		mod.addToSequence(cr, "sequence");
@@ -219,7 +218,7 @@
 	}
 	
 	@Test
-	void sequentialUnitAddTest() {
+	public void sequentialUnitAddTest() {
 		CRule cr = mod.addRule(r);
 		mod.addToSequence(cr, "sequence");
 		assertNotNull(mod.getModule().getUnit("sequence"));
@@ -229,7 +228,7 @@
 	}
 	
 	@Test
-	void independentUnitCreationTest() {
+	public void independentUnitCreationTest() {
 		CRule cr = mod.addRule(r);
 		assertNull(mod.getModule().getUnit("independent"));
 		mod.addToIndependent(cr, "independent");
@@ -239,7 +238,7 @@
 	}
 	
 	@Test
-	void independentUnitAddTest() {
+	public void independentUnitAddTest() {
 		CRule cr = mod.addRule(r);
 		mod.addToIndependent(cr, "independent");
 		assertNotNull(mod.getModule().getUnit("independent"));
@@ -250,7 +249,7 @@
 	
 	
 	@Test
-	void getAllCUnitsTest() {
+	public void getAllCUnitsTest() {
 		mod = new CModule(m);
 		List<CUnit> list = mod.getAllCUnits();
 		assertEquals(list.size(),m.getUnits().size());
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CNodeTests.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CNodeTests.java
index 6020804..d302fcc 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CNodeTests.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CNodeTests.java
@@ -1,7 +1,6 @@
 package org.eclipse.emf.henshin.tests.compact;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
@@ -15,34 +14,34 @@
 import org.eclipse.emf.henshin.model.compact.CNode;
 import org.eclipse.emf.henshin.model.compact.CRule;
 import org.eclipse.emf.henshin.model.resource.HenshinResourceSet;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
-class CNodeTests {
+public class CNodeTests {
 
 	static EClass account, bank;
 	static EReference ref;
 	static EAttribute att;
 	static String path;
 	static EPackage pack;
-	
+
 	CRule rule;
 	CModule mod;
 	CNode node1, node2;
-	
-	@BeforeAll
+
+	@BeforeClass
 	public static void globalSetUp() {
 		path = "src/org/eclipse/emf/henshin/tests/compact/";
 		HenshinResourceSet hrs = new HenshinResourceSet(path);
 		pack = hrs.registerDynamicEPackages("bank.ecore").get(0);
 		account = (EClass) pack.getEClassifier("Account");
 		bank = (EClass) pack.getEClassifier("Bank");
-		ref = bank.getEReferences().get(1);//accounts
-		att = account.getEAllAttributes().get(1);//credit
+		ref = bank.getEReferences().get(1);// accounts
+		att = account.getEAllAttributes().get(1);// credit
 	}
 
-	@BeforeEach
+	@Before
 	public void localSetUp() {
 		mod = new CModule("module");
 		mod.addImport(pack);
@@ -50,109 +49,102 @@
 		node1 = rule.createNode(bank);
 		node2 = rule.createNode(account);
 	}
-	
+
 	@Test
-	void canCreateEdgeTest() {
-		assertEquals(node1.canCreateEdge(node2, ref), rule.getUnit().canCreateEdge(node1.getNode(), node2.getNode(), ref));
+	public void canCreateEdgeTest() {
+		assertEquals(node1.canCreateEdge(node2, ref),
+				rule.getUnit().canCreateEdge(node1.getNode(), node2.getNode(), ref));
 	}
-	
+
 	@Test
-	void canCreateEdgeRefStringTest() {
-		assertEquals(node1.canCreateEdge(node2, "accounts"), rule.getUnit().canCreateEdge(node1.getNode(), node2.getNode(), ref));
+	public void canCreateEdgeRefStringTest() {
+		assertEquals(node1.canCreateEdge(node2, "accounts"),
+				rule.getUnit().canCreateEdge(node1.getNode(), node2.getNode(), ref));
 	}
-	
-	@Test
-	void canCreateEdgeWrongRefTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			node1.canCreateEdge(node2,  "cheesecake");
-			});
-		assertEquals(e.getMessage(),"No Reference for cheesecake found.");
+
+	@Test(expected = RuntimeException.class)
+	public void canCreateEdgeWrongRefTest() {
+			node1.canCreateEdge(node2, "cheesecake");
 	}
-	
+
 	@Test
-	void createEdgeTest() {
+	public void createEdgeTest() {
 		node1.createEdge(node2, ref, new Action(Action.Type.PRESERVE));
 		Edge edge = rule.getUnit().getLhs().getEdges().get(0);
-		assertEquals(edge.getAction().getType(),Action.Type.PRESERVE);
+		assertEquals(edge.getAction().getType(), Action.Type.PRESERVE);
 		assertEquals(edge.getSource(), node1.getNode());
 		assertEquals(edge.getTarget(), node2.getNode());
 		assertEquals(edge.getType(), ref);
 	}
-	
+
 	@Test
-	void createEdgeDefaultActionTest() {
+	public void createEdgeDefaultActionTest() {
 		node1.createEdge(node2, ref);
 		Edge edge = rule.getUnit().getLhs().getEdges().get(0);
-		assertEquals(edge.getAction().getType(),Action.Type.PRESERVE);
+		assertEquals(edge.getAction().getType(), Action.Type.PRESERVE);
 		assertEquals(edge.getSource(), node1.getNode());
 		assertEquals(edge.getTarget(), node2.getNode());
 		assertEquals(edge.getType(), ref);
 	}
-	
+
 	@Test
-	void createEdgeDefaultActionStringRefTest() {
+	public void createEdgeDefaultActionStringRefTest() {
 		node1.createEdge(node2, "accounts");
 		Edge edge = rule.getUnit().getLhs().getEdges().get(0);
-		assertEquals(edge.getAction().getType(),Action.Type.PRESERVE);
+		assertEquals(edge.getAction().getType(), Action.Type.PRESERVE);
 		assertEquals(edge.getSource(), node1.getNode());
 		assertEquals(edge.getTarget(), node2.getNode());
 		assertEquals(edge.getType(), ref);
 	}
-	
+
 	@Test
-	void createEdgeStringRefTest() {
+	public void createEdgeStringRefTest() {
 		node1.createEdge(node2, "accounts", new Action(Action.Type.PRESERVE));
 		Edge edge = rule.getUnit().getLhs().getEdges().get(0);
-		assertEquals(edge.getAction().getType(),Action.Type.PRESERVE);
+		assertEquals(edge.getAction().getType(), Action.Type.PRESERVE);
 		assertEquals(edge.getSource(), node1.getNode());
 		assertEquals(edge.getTarget(), node2.getNode());
 		assertEquals(edge.getType(), ref);
 	}
-	
+
 	@Test
-	void createEdgeStringActionTest() {
+	public void createEdgeStringActionTest() {
 		node1.createEdge(node2, ref, "preserve");
 		Edge edge = rule.getUnit().getLhs().getEdges().get(0);
-		assertEquals(edge.getAction().getType(),Action.Type.PRESERVE);
+		assertEquals(edge.getAction().getType(), Action.Type.PRESERVE);
 		assertEquals(edge.getSource(), node1.getNode());
 		assertEquals(edge.getTarget(), node2.getNode());
 		assertEquals(edge.getType(), ref);
 	}
-	
+
 	@Test
-	void createEdgeAllStringsTest() {
+	public void createEdgeAllStringsTest() {
 		node1.createEdge(node2, "accounts", "preserve");
 		Edge edge = rule.getUnit().getLhs().getEdges().get(0);
-		assertEquals(edge.getAction().getType(),Action.Type.PRESERVE);
+		assertEquals(edge.getAction().getType(), Action.Type.PRESERVE);
 		assertEquals(edge.getSource(), node1.getNode());
 		assertEquals(edge.getTarget(), node2.getNode());
 		assertEquals(edge.getType(), ref);
 	}
-	
-	@Test
-	void createEdgeWrongActionTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			node1.createEdge(node2, "accounts", "cheesecake");
-			});
-		assertEquals(e.getMessage(), "cheesecake is not a valid Action");
-		
-		e = assertThrows(RuntimeException.class,() -> {
-			node1.createEdge(node2, ref, "cheesecake");
-			});
-		assertEquals(e.getMessage(), "cheesecake is not a valid Action");
-		
+
+	@Test(expected = RuntimeException.class)
+	public void createEdgeWrongActionTest1() {
+		node1.createEdge(node2, "accounts", "cheesecake");
 	}
-	
-	@Test
-	void createEdgeFailTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			node1.createEdge(node2, "clients");
-			});
-		assertEquals(e.getMessage(), "Failed to create Edge");
+
+	@Test(expected = RuntimeException.class)
+	public void createEdgeWrongActionTest2() {
+		node1.createEdge(node2, ref, "cheesecake");
+
 	}
-	
+
+	@Test(expected = RuntimeException.class)
+	public void createEdgeFailTest() {
+		node1.createEdge(node2, "clients");
+	}
+
 	@Test
-	void createAttributeTest() {
+	public void createAttributeTest() {
 		node2.createAttribute(att, "1000", new Action(Action.Type.PRESERVE));
 		Attribute attribute = node2.getNode().getAttributes().get(0);
 		assertEquals(attribute.getAction().getType(), Action.Type.PRESERVE);
@@ -160,9 +152,9 @@
 		assertEquals(attribute.getType(), att);
 		assertEquals(attribute.getValue(), "1000");
 	}
-	
+
 	@Test
-	void createAttributeDefaultActionTest() {
+	public void createAttributeDefaultActionTest() {
 		node2.createAttribute(att, "1000");
 		Attribute attribute = node2.getNode().getAttributes().get(0);
 		assertEquals(attribute.getAction().getType(), node2.getNode().getAction().getType());
@@ -170,9 +162,9 @@
 		assertEquals(attribute.getType(), att);
 		assertEquals(attribute.getValue(), "1000");
 	}
-	
+
 	@Test
-	void createAttributeStringAttTest() {
+	public void createAttributeStringAttTest() {
 		node2.createAttribute("credit", "1000", new Action(Action.Type.PRESERVE));
 		Attribute attribute = node2.getNode().getAttributes().get(0);
 		assertEquals(attribute.getAction().getType(), Action.Type.PRESERVE);
@@ -180,9 +172,9 @@
 		assertEquals(attribute.getType(), att);
 		assertEquals(attribute.getValue(), "1000");
 	}
-	
+
 	@Test
-	void createAttributeStringActionTest() {
+	public void createAttributeStringActionTest() {
 		node2.createAttribute(att, "1000", "preserve");
 		Attribute attribute = node2.getNode().getAttributes().get(0);
 		assertEquals(attribute.getAction().getType(), Action.Type.PRESERVE);
@@ -190,9 +182,9 @@
 		assertEquals(attribute.getType(), att);
 		assertEquals(attribute.getValue(), "1000");
 	}
-	
+
 	@Test
-	void createAttributeDefaultActionStringRefTest() {
+	public void createAttributeDefaultActionStringRefTest() {
 		node2.createAttribute("credit", "1000");
 		Attribute attribute = node2.getNode().getAttributes().get(0);
 		assertEquals(attribute.getAction().getType(), node2.getNode().getAction().getType());
@@ -200,9 +192,9 @@
 		assertEquals(attribute.getType(), att);
 		assertEquals(attribute.getValue(), "1000");
 	}
-	
+
 	@Test
-	void createAttributeAllStrings() {
+	public void createAttributeAllStrings() {
 		node2.createAttribute("credit", "1000", "preserve");
 		Attribute attribute = node2.getNode().getAttributes().get(0);
 		assertEquals(attribute.getAction().getType(), Action.Type.PRESERVE);
@@ -210,44 +202,38 @@
 		assertEquals(attribute.getType(), att);
 		assertEquals(attribute.getValue(), "1000");
 	}
-	
-	@Test
-	void createAttributeWrongActionTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			node2.createAttribute("credit", "1000", "cheesecake");
-			});
-		assertEquals(e.getMessage(), "cheesecake is not a valid Action");
-		
-		e = assertThrows(RuntimeException.class,() -> {
-			node2.createAttribute(att, "1000", "cheesecake");
-			});
-		assertEquals(e.getMessage(), "cheesecake is not a valid Action");
+
+	@Test(expected = RuntimeException.class)
+	public void createAttributeWrongActionTest1() {
+		node2.createAttribute("credit", "1000", "cheesecake");
 	}
-	
+
+	@Test(expected = RuntimeException.class)
+	public void createAttributeWrongActionTest2() {
+		node2.createAttribute(att, "1000", "cheesecake");
+	}
+
 	@Test
-	void setAttributeResultTest() {
+	public void setAttributeResultTest() {
 		node2.createAttribute(att, "1000->2000", new Action(Action.Type.PRESERVE));
 		Node node = rule.getUnit().getMappings().getImage(node2.getNode(), rule.getUnit().getRhs());
 		assertEquals(node2.getNode().getAttribute(att).getValue(), "1000");
 		assertEquals(node.getAttribute(att).getValue(), "2000");
 	}
-	
-	@Test
-	void createAttributeWrongAttributeTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			node2.createAttribute("cheesecake", "1000", new Action(Action.Type.PRESERVE));
-			});
-		assertEquals(e.getMessage(), "No Attribute for cheesecake found.");
+
+	@Test(expected = RuntimeException.class)
+	public void createAttributeWrongAttributeTest() {
+		node2.createAttribute("cheesecake", "1000", new Action(Action.Type.PRESERVE));
 	}
-	
+
 	@Test
-	void setNodeTest() {
+	public void setNodeTest() {
 		node2.setNode(node1.getNode());
 		assertEquals(node1.getNode(), node2.getNode());
 	}
-	
+
 	@Test
-	void setNameTest() {
+	public void setNameTest() {
 		node1.setName("name");
 		assertEquals(node1.getNode().getName(), "name");
 	}
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CRuleTests.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CRuleTests.java
index b933dba..75e6fe5 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CRuleTests.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CRuleTests.java
@@ -1,8 +1,7 @@
 package org.eclipse.emf.henshin.tests.compact;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EPackage;
@@ -19,11 +18,11 @@
 import org.eclipse.emf.henshin.model.compact.CRule;
 import org.eclipse.emf.henshin.model.compact.CUnit;
 import org.eclipse.emf.henshin.model.resource.HenshinResourceSet;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
-class CRuleTests {
+public class CRuleTests {
 	
 	static EClass account;
 	static String path;
@@ -31,7 +30,7 @@
 	CModule mod;
 	CRule rule;
 	
-	@BeforeAll
+	@BeforeClass
 	public static void globalSetUp() {
 		path = "src/org/eclipse/emf/henshin/tests/compact/";
 		HenshinResourceSet hrs = new HenshinResourceSet(path);
@@ -39,7 +38,7 @@
 		account = (EClass) pack.getEClassifier("Account");
 	}
 	
-	@BeforeEach
+	@Before
 	public void localSetUp() {
 		mod = new CModule("module");
 		mod.addImport(pack);
@@ -47,7 +46,7 @@
 	}
 
 	@Test
-	void createNodeTest() {
+	public void createNodeTest() {
 		CNode node = rule.createNode(account, new Action(Action.Type.PRESERVE));
 		assertTrue(!rule.getUnit().getLhs().getNodes().isEmpty());
 		assertEquals(node.getNode().getType(),account);
@@ -56,7 +55,7 @@
 	}
 	
 	@Test
-	void createNodeTestClassStringTest() {
+	public void createNodeTestClassStringTest() {
 		CNode node = rule.createNode("Account", new Action(Action.Type.PRESERVE));
 		assertTrue(!rule.getUnit().getLhs().getNodes().isEmpty());
 		assertEquals(node.getNode().getType(),account);
@@ -65,7 +64,7 @@
 	}
 	
 	@Test
-	void createNodeTestActionStringTest() {
+	public void createNodeTestActionStringTest() {
 		CNode node = rule.createNode(account, "preserve");
 		assertTrue(!rule.getUnit().getLhs().getNodes().isEmpty());
 		assertEquals(node.getNode().getType(),account);
@@ -74,7 +73,7 @@
 	}
 	
 	@Test
-	void createNodeAllStrings() {
+	public void createNodeAllStrings() {
 		CNode node = rule.createNode("Account", "preserve");
 		assertTrue(!rule.getUnit().getLhs().getNodes().isEmpty());
 		assertEquals(node.getNode().getType(),account);
@@ -83,7 +82,7 @@
 	}
 	
 	@Test
-	void createNodeDefaultActionTest() {
+	public void createNodeDefaultActionTest() {
 		CNode node = rule.createNode(account);
 		assertTrue(!rule.getUnit().getLhs().getNodes().isEmpty());
 		assertEquals(node.getNode().getType(),account);
@@ -92,7 +91,7 @@
 	}
 	
 	@Test
-	void createNodeDefaultActionClassStringTest() {
+	public void createNodeDefaultActionClassStringTest() {
 		CNode node = rule.createNode("Account");
 		assertTrue(!rule.getUnit().getLhs().getNodes().isEmpty());
 		assertEquals(node.getNode().getType(),account);
@@ -100,20 +99,20 @@
 		assertEquals(node.getNode().getGraph(), rule.getUnit().getLhs());
 	}
 	
-	@Test
-	void createNodeWrongActionStringTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
+	@Test(expected = RuntimeException.class)
+	public void createNodeWrongActionStringTest1() {
 			rule.createNode(account, "cheesecake");
-			});
-		assertEquals(e.getMessage(), "cheesecake is not a valid Action");
-		e = assertThrows(RuntimeException.class,() -> {
-			rule.createNode("Account", "cheesecake");
-			});
-		assertEquals(e.getMessage(), "cheesecake is not a valid Action");
 	}
 	
+
+	@Test(expected = RuntimeException.class)
+	public void createNodeWrongActionStringTest2() {
+			rule.createNode("Account", "cheesecake");
+	}
+	
+	
 	@Test
-	void createNodeInMultiRuleTest() {
+	public void createNodeInMultiRuleTest() {
 		rule.createParameter("in", "param", EcorePackage.Literals.EINT);
 		
 		CNode node = rule.createNode(account, "delete*/myMultiRule");
@@ -124,56 +123,50 @@
 	}
 	
 	@Test
-	void createNodeInNAC() {
+	public void createNodeInNAC() {
 		CNode node = rule.createNode(account, "forbid#myNAC");
 		assertTrue(rule.getUnit().getLhs().getNAC("myNAC").getConclusion().getNodes().contains(node.getNode()));
 	}
 	
 	@Test
-	void createNodeInPAC() {
+	public void createNodeInPAC() {
 		CNode node = rule.createNode(account, "require#myPAC");
 		assertTrue(rule.getUnit().getLhs().getPAC("myPAC").getConclusion().getNodes().contains(node.getNode()));
 	}
 	
 	@Test
-	void extractNACTest() {
+	public void extractNACTest() {
 		rule.createNode(account, "forbid#myNAC");
 		Not n = rule.getNAC("myNAC");
 		assertEquals(n, ((Not)rule.getUnit().getLhs().getFormula()));
 	}
 	
 	@Test
-	void extractPACTest() {
+	public void extractPACTest() {
 		rule.createNode(account, "require#myPAC");
 		NestedCondition n = rule.getPAC("myPAC");
 		assertEquals(n, rule.getUnit().getLhs().getFormula());
 	}
 	
-	@Test
-	void extractNACNonExistentTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
+	@Test(expected = RuntimeException.class)
+	public void extractNACNonExistentTest() {
 			rule.getNAC("myNAC");
-			});
-		assertEquals(e.getMessage(), "Could not find any Condition named: myNAC");
 	}
 	
-	@Test
-	void extractPACNonExistentTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
+	@Test(expected = RuntimeException.class)
+	public void extractPACNonExistentTest() {
 			rule.getPAC("myPAC");
-			});
-		assertEquals(e.getMessage(), "Could not find any Condition named: myPAC");
 	}
 	
 	@Test
-	void setFormulaTest() {
+	public void setFormulaTest() {
 		Or or = HenshinFactory.eINSTANCE.createOr();
 		rule.setPreConditionFormula(or);
 		assertEquals(rule.getUnit().getLhs().getFormula(), or);
 	}
 	
 	@Test
-	void createAttributeConditionTest() {
+	public void createAttributeConditionTest() {
 		rule.createParameter("in", "param", EcorePackage.Literals.EINT);
 		rule.createAttributeCondition("cond", "param=100");
 		AttributeCondition cond = rule.getUnit().getAttributeConditions().get(0);
@@ -182,18 +175,15 @@
 	}
 	
 	@Test
-	void setUnitTest() {
+	public void setUnitTest() {
 		CRule newRule = mod.createRule("newRule");
 		newRule.setUnit(rule.getUnit());
 		assertEquals(newRule.getUnit(), rule.getUnit());
 	}
 	
-	@Test
-	void setUnitTestNotARule() {
+	@Test(expected = RuntimeException.class)
+	public void setUnitTestNotARule() {
 		CUnit unit = mod.createLoop(rule);
-		Exception e = assertThrows(RuntimeException.class,() -> {
 			rule.setUnit(unit.getUnit());
-			});
-		assertEquals(e.getMessage(), "Given Unit is not a Rule!");
 	}
 }
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CUnitTests.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CUnitTests.java
index 25c822a..7cbbf37 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CUnitTests.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/compact/CUnitTests.java
@@ -1,9 +1,8 @@
 package org.eclipse.emf.henshin.tests.compact;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClassifier;
@@ -16,29 +15,29 @@
 import org.eclipse.emf.henshin.model.compact.CRule;
 import org.eclipse.emf.henshin.model.compact.CUnit;
 import org.eclipse.emf.henshin.model.resource.HenshinResourceSet;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
-class CUnitTests {
-	
+public class CUnitTests {
+
 	static EClassifier account;
 	static String path;
 	static EPackage pack;
-	CModule mod,bank;
+	CModule mod, bank;
 	CUnit unit;
 	CRule rule;
 
-	@BeforeAll
+	@BeforeClass
 	public static void globalSetup() {
 		path = "src/org/eclipse/emf/henshin/tests/compact/";
 		HenshinResourceSet hrs = new HenshinResourceSet(path);
 		pack = hrs.registerDynamicEPackages("bank.ecore").get(0);
 		account = pack.getEClassifier("Account");
-		
+
 	}
-	
-	@BeforeEach
+
+	@Before
 	public void localSetup() {
 		mod = new CModule("module");
 		rule = mod.createRule("rule");
@@ -46,49 +45,45 @@
 	}
 
 	@Test
-	void createParameterTest() {
+	public void createParameterTest() {
 		unit.createParameter(ParameterKind.IN, "param", EcorePackage.Literals.EINT);
 		Parameter par = unit.getUnit().getParameter("param");
 		assertNotNull(par);
-		assertEquals(par.getKind(),ParameterKind.IN);
-		assertEquals(par.getName(),"param");
+		assertEquals(par.getKind(), ParameterKind.IN);
+		assertEquals(par.getName(), "param");
 		assertEquals(par.getType(), EcorePackage.Literals.EINT);
 	}
-	
+
 	@Test
-	void createParameterWithStringKind() {
+	public void createParameterWithStringKind() {
 		unit.createParameter("in", "param", EcorePackage.Literals.EINT);
 		Parameter par = unit.getUnit().getParameter("param");
 		assertNotNull(par);
-		assertEquals(par.getKind(),ParameterKind.IN);
-		assertEquals(par.getName(),"param");
+		assertEquals(par.getKind(), ParameterKind.IN);
+		assertEquals(par.getName(), "param");
 		assertEquals(par.getType(), EcorePackage.Literals.EINT);
 	}
-	
-	@Test
-	void createParameterWithWrongStringKind() {
-		assertThrows(RuntimeException.class,() -> {
-			unit.createParameter("cheesecake", "param", EcorePackage.Literals.EINT);
-			});
+
+	@Test(expected = RuntimeException.class)
+	public void createParameterWithWrongStringKind() {
+		unit.createParameter("cheesecake", "param", EcorePackage.Literals.EINT);
 	}
-	
+
 	@Test
-	void createParameterWithClassifierString() {
+	public void createParameterWithClassifierString() {
 		mod.addImport(pack);
 		rule.createParameter(ParameterKind.IN, "param", "Account");
 		Parameter par = rule.getUnit().getParameter("param");
-		assertEquals(par.getType(),account);
+		assertEquals(par.getType(), account);
 	}
-	
-	@Test
-	void createParameterWithWrongClassifierString() {
-		assertThrows(RuntimeException.class,() -> {
-			unit.createParameter(ParameterKind.IN, "param", "cheesecake");
-			});
+
+	@Test(expected = RuntimeException.class)
+	public void createParameterWithWrongClassifierString() {
+		unit.createParameter(ParameterKind.IN, "param", "cheesecake");
 	}
-	
+
 	@Test
-	void createParameterAllStrings() {
+	public void createParameterAllStrings() {
 		mod.addImport(pack);
 		rule.createParameter("inout", "param", "Account");
 		Parameter par = rule.getUnit().getParameter("param");
@@ -97,9 +92,9 @@
 		assertEquals(par.getType(), account);
 		assertEquals(par.getName(), "param");
 	}
-	
+
 	@Test
-	void mapParameterTest() {
+	public void mapParameterTest() {
 		unit.createParameter("out", "param1", EcorePackage.Literals.EINT);
 		rule.createParameter("in", "param2", EcorePackage.Literals.EINT);
 		assertTrue(unit.getUnit().getParameterMappings().isEmpty());
@@ -110,43 +105,38 @@
 		assertEquals(map.getSource(), unit.getUnit().getParameter("param1"));
 		assertEquals(map.getTarget(), rule.getUnit().getParameter("param2"));
 	}
-	
-	@Test
-	void mapParameterWrongUnitTest() {
+
+	@Test(expected = RuntimeException.class)
+	public void mapParameterWrongUnitTest() {
 		unit.createParameter("out", "param1", EcorePackage.Literals.EINT);
 		rule.createParameter("in", "param2", EcorePackage.Literals.EINT);
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			unit.mapParameterToSubunit("param1", "cheesecake", "param2");
-			});
-		assertEquals("Unit: cheesecake not found", e.getMessage());
+		unit.mapParameterToSubunit("param1", "cheesecake", "param2");
 	}
-	
-	@Test
-	void mapParameterWrongParamTest() {
+
+	@Test(expected = RuntimeException.class)
+	public void mapParameterWrongParamTest1() {
 		unit.createParameter("out", "param1", EcorePackage.Literals.EINT);
 		rule.createParameter("in", "param2", EcorePackage.Literals.EINT);
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			unit.mapParameterToSubunit("cheesecake", "rule", "param2");
-			});
-		assertEquals(e.getMessage(), "Parameter: cheesecake not found");
-		e = assertThrows(RuntimeException.class,() -> {
-			unit.mapParameterToSubunit("param1", "rule", "cheesecake");
-			});
-		assertEquals(e.getMessage(), "Parameter: cheesecake in rule not found");
+		unit.mapParameterToSubunit("cheesecake", "rule", "param2");
+		;
 	}
-	
-	@Test
-	void mapParameterTypesNotEqualTest() {
+
+	@Test(expected = RuntimeException.class)
+	public void mapParameterWrongParamTest2() {
+		unit.createParameter("out", "param1", EcorePackage.Literals.EINT);
+		rule.createParameter("in", "param2", EcorePackage.Literals.EINT);
+		unit.mapParameterToSubunit("param1", "rule", "cheesecake");
+	}
+
+	@Test(expected = RuntimeException.class)
+	public void mapParameterTypesNotEqualTest() {
 		unit.createParameter("out", "param1", EcorePackage.Literals.EINT);
 		rule.createParameter("in", "param2", EcorePackage.Literals.ESTRING);
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			unit.mapParameterToSubunit("param1", "rule", "param2");
-			});
-		assertEquals(e.getMessage(), "Parameters do not have equal Types");
+		unit.mapParameterToSubunit("param1", "rule", "param2");
 	}
-	
+
 	@Test
-	void setUnitTest() {
+	public void setUnitTest() {
 		unit.setUnit(rule.getUnit());
 		assertEquals(unit.getUnit(), rule.getUnit());
 	}
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/DebuggerTests.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/DebuggerTests.java
index 4f52f7c..fbd64c3 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/DebuggerTests.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/DebuggerTests.java
@@ -1,8 +1,6 @@
 package org.eclipse.emf.henshin.tests.interpreter;
 
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 
 import java.util.List;
 
@@ -19,17 +17,14 @@
 import org.eclipse.emf.henshin.model.Rule;
 import org.eclipse.emf.henshin.model.compact.CModule;
 import org.eclipse.emf.henshin.model.resource.HenshinResourceSet;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
+public class DebuggerTests {
 
-class DebuggerTests {
-
-
-	
 	static String path;
-	
+
 	HenshinResourceSet res;
 	EPackage pack;
 	EClass account;
@@ -38,23 +33,23 @@
 	Debugger debugger;
 	EGraph graph;
 	EGraph expectedResult;
-	
-	@BeforeAll
+
+	@BeforeClass
 	public static void globalSetUp() {
 		path = "src/org/eclipse/emf/henshin/tests/interpreter/";
-		
+
 	}
-	
-	@BeforeEach
+
+	@Before
 	public void localSetUp() {
 		res = new HenshinResourceSet(path);
 		mod = new CModule(res.getModule("bank.henshin"));
 //		mod = CModule.loadFromFile(path+"bank.henshin");
 		graph = new EGraphImpl(res.getResource("example-bank.xmi"));
-		
+
 		debugger = new Debugger(path);
 		expectedResult = new EGraphImpl(res.getResource("example-result.xmi"));
-		
+
 		pack = res.registerDynamicEPackages("bank.ecore").get(0);
 		account = (EClass) pack.getEClassifier("Account");
 		credit = account.getEAllAttributes().get(1);
@@ -62,163 +57,136 @@
 	}
 
 	@Test
-	void undoRedoTest() {
-		//Using a modified version of https://www.eclipse.org/henshin/examples.php?example=bank for Testing
-				//Creating a new account for Alice...
-				String expectedAfterUndo;
-				expectedAfterUndo = graph.toString().split("\\(")[1];
-				
-				graph = debugger.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5);
-				//Transferring some Money...
-				graph = debugger.executeUnit(graph, mod.getModule(), "transferMoney", "Alice", 1, 2, 50.0d);
-				//Deleting all accounts of Charles...
-				graph = debugger.executeUnit(graph, mod.getModule(), "deleteAllAccounts", "Charles");
+	public void undoRedoTest() {
+		// Using a modified version of
+		// https://www.eclipse.org/henshin/examples.php?example=bank for Testing
+		// Creating a new account for Alice...
+		String expectedAfterUndo;
+		expectedAfterUndo = graph.toString().split("\\(")[1];
 
-				String graphString, expectedString;
-				graphString = graph.toString().split("\\(")[1];
-				expectedString = expectedResult.toString().split("\\(")[1];
-				//Can only assert same Structure. Same Content needs to be checked.
-				assertEquals(graphString, expectedString);
-				
-				graph = debugger.undo();
-				graph = debugger.undo();
-				graph = debugger.undo();
-				graphString = graph.toString().split("\\(")[1];
-				assertEquals(graphString, expectedAfterUndo);
-				
-				graph = debugger.redo();
-				graph = debugger.redo();
-				graph = debugger.redo();
+		graph = debugger.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5);
+		// Transferring some Money...
+		graph = debugger.executeUnit(graph, mod.getModule(), "transferMoney", "Alice", 1, 2, 50.0d);
+		// Deleting all accounts of Charles...
+		graph = debugger.executeUnit(graph, mod.getModule(), "deleteAllAccounts", "Charles");
 
-				graphString = graph.toString().split("\\(")[1];
-				assertEquals(graphString, expectedString);
+		String graphString, expectedString;
+		graphString = graph.toString().split("\\(")[1];
+		expectedString = expectedResult.toString().split("\\(")[1];
+		// Can only assert same Structure. Same Content needs to be checked.
+		assertEquals(graphString, expectedString);
+
+		graph = debugger.undo();
+		graph = debugger.undo();
+		graph = debugger.undo();
+		graphString = graph.toString().split("\\(")[1];
+		assertEquals(graphString, expectedAfterUndo);
+
+		graph = debugger.redo();
+		graph = debugger.redo();
+		graph = debugger.redo();
+
+		graphString = graph.toString().split("\\(")[1];
+		assertEquals(graphString, expectedString);
 	}
-	
-	@Test
-	void undoRedoFailTest() {
-		
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			debugger.undo();
-			});
-		assertEquals(e.getMessage(), "No undoable Units exist");
-		e = assertThrows(RuntimeException.class,() -> {
-			debugger.redo();
-			});
-		assertEquals(e.getMessage(), "No redoable Units exist");
+
+	@Test(expected = RuntimeException.class)
+	public void undoRedoFailTest() {
+		debugger.undo();
+		debugger.redo();
 	}
-	
+
 	@Test
-	void executeRuleOnCompleteMatchTest() {
-		List<EObject> list = graph.getDomain(account,true);
+	public void executeRuleOnCompleteMatchTest() {
+		List<EObject> list = graph.getDomain(account, true);
 		EObject eNode = null;
-		for(EObject e: list)
-		{
-			 int iDVal = (int)e.eGet(iD);
-			 if(iDVal == 2)
-			 {
-				 eNode = e;//This should be Account 2
-				 break;
-			 }
+		for (EObject e : list) {
+			int iDVal = (int) e.eGet(iD);
+			if (iDVal == 2) {
+				eNode = e;// This should be Account 2
+				break;
+			}
 		}
-		
-		
+
 		Rule r = (Rule) mod.getModule().getUnit("addCreditToRandomAccount2");
 		Match match = InterpreterFactory.INSTANCE.createMatch(r, false);
-		Node n = r.getLhs().getNodes().get(0); //The Rule only has this node.
-		
-		match.setNodeTarget(n, eNode);
-		
-		EGraph transformedGraph = debugger.executeRuleOnMatch(graph, mod.getModule(), "addCreditToRandomAccount2", match, 400.0);
-		debugger.saveGraph(graph, "debuggerTest-result.xmi");
-		
-		list = transformedGraph.getDomain(account,true);
-		eNode = null;
-		for(EObject e: list)
-		{
-			 double value = (double)e.eGet(credit);
+		Node n = r.getLhs().getNodes().get(0); // The Rule only has this node.
 
-			 int iDVal = (int) e.eGet(iD);
-			 if(iDVal == 2)
-			 {
-				 assertEquals(value,400.0);
-			 }
+		match.setNodeTarget(n, eNode);
+
+		EGraph transformedGraph = debugger.executeRuleOnMatch(graph, mod.getModule(), "addCreditToRandomAccount2",
+				match, 400.0);
+		debugger.saveGraph(graph, "debuggerTest-result.xmi");
+
+		list = transformedGraph.getDomain(account, true);
+		eNode = null;
+		for (EObject e : list) {
+			double value = (double) e.eGet(credit);
+
+			int iDVal = (int) e.eGet(iD);
+			if (iDVal == 2) {
+				assertEquals(value, 400.0, 0.01);
+			}
 		}
 	}
-	
+
 	@Test
-	void executeRuleOnPartialMatchTest() {
-		List<EObject> list = graph.getDomain(account,true);
+	public void executeRuleOnPartialMatchTest() {
+		List<EObject> list = graph.getDomain(account, true);
 		EObject eNode = null;
-		for(EObject e: list)
-		{
-			 int iDVal = (int)e.eGet(iD);
-			 if(iDVal == 2)
-			 {
-				 eNode = e;//This should be Account 2
-				 break;
-			 }
+		for (EObject e : list) {
+			int iDVal = (int) e.eGet(iD);
+			if (iDVal == 2) {
+				eNode = e;// This should be Account 2
+				break;
+			}
 		}
-		
-		
+
 		Rule r = (Rule) mod.getModule().getUnit("addCreditToRandomAccount");
 		Match match = InterpreterFactory.INSTANCE.createMatch(r, false);
-		Node n = r.getLhs().getNodes().get(0); //The Rule only has this node.
-		
-		match.setNodeTarget(n, eNode);
-		
-		EGraph transformedGraph = debugger.executeRuleOnMatch(graph, mod.getModule(), "addCreditToRandomAccount", match, 400.0);
-		debugger.saveGraph(graph, "debuggerTest-result.xmi");
-		
-		list = transformedGraph.getDomain(account,true);
-		eNode = null;
-		for(EObject e: list)
-		{
-			 double value = (double)e.eGet(credit);
+		Node n = r.getLhs().getNodes().get(0); // The Rule only has this node.
 
-			 int iDVal = (int) e.eGet(iD);
-			 if(iDVal == 2)
-			 {
-				 assertEquals(value,400.0);
-			 }
+		match.setNodeTarget(n, eNode);
+
+		EGraph transformedGraph = debugger.executeRuleOnMatch(graph, mod.getModule(), "addCreditToRandomAccount", match,
+				400.0);
+		debugger.saveGraph(graph, "debuggerTest-result.xmi");
+
+		list = transformedGraph.getDomain(account, true);
+		eNode = null;
+		for (EObject e : list) {
+			double value = (double) e.eGet(credit);
+
+			int iDVal = (int) e.eGet(iD);
+			if (iDVal == 2) {
+				assertEquals(value, 400.0, 0.01);
+			}
 		}
 	}
-	
-	@Test
-	void executeRuleOnMatchStringGraphTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = debugger.executeRuleOnMatch("example-bank.xmi", mod.getModule(), "addCreditToRandomAccount", null, 400.0);
-			});
-		assertEquals(e.getMessage(), "Failed to apply transformation");
+
+	@Test(expected = RuntimeException.class)
+	public void executeRuleOnMatchStringGraphTest() {
+		graph = debugger.executeRuleOnMatch("example-bank.xmi", mod.getModule(), "addCreditToRandomAccount", null,
+				400.0);
 	}
-	
-	@Test
-	void executeRuleOnMatchStringModuleTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = debugger.executeRuleOnMatch(graph, "bank.henshin", "createAccount", null, "Alice", 5);
-			});
-		assertEquals(e.getMessage(), "Failed to apply transformation");
+
+	@Test(expected = RuntimeException.class)
+	public void executeRuleOnMatchStringModuleTest() {
+		graph = debugger.executeRuleOnMatch(graph, "bank.henshin", "createAccount", null, "Alice", 5);
 	}
-	
+
 	@Test
-	void executeRuleOnMatchAllStringsTest() {
-		assertDoesNotThrow(() -> {
-			graph = debugger.executeRuleOnMatch("example-bank.xmi", "bank.henshin", "createAccount", null, "Alice", 5);
-			});
+	public void executeRuleOnMatchAllStringsTest() {
+		graph = debugger.executeRuleOnMatch("example-bank.xmi", "bank.henshin", "createAccount", null, "Alice", 5);
 	}
-	
-	@Test
-	void executeRuleOnMatchNoRuleTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = debugger.executeRuleOnMatch("example-bank.xmi", "bank.henshin", "cheesecake", null, "Alice", 5);
-			});
-		assertEquals(e.getMessage(), "Specified Rule does not exist");
+
+	@Test(expected = RuntimeException.class)
+	public void executeRuleOnMatchNoRuleTest() {
+		graph = debugger.executeRuleOnMatch("example-bank.xmi", "bank.henshin", "cheesecake", null, "Alice", 5);
 	}
-	
-	@Test
-	void executeRuleOnMatchNotARuleTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = debugger.executeRuleOnMatch("example-bank.xmi", "bank.henshin", "independent", null, "Alice", 5);
-			});
-		assertEquals(e.getMessage(), "Specified Unit is not a Rule");
+
+	@Test(expected = RuntimeException.class)
+	public void executeRuleOnMatchNotARuleTest() {
+		graph = debugger.executeRuleOnMatch("example-bank.xmi", "bank.henshin", "independent", null, "Alice", 5);
 	}
 }
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/InterpreterTests.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/InterpreterTests.java
index 97aa39e..0eef756 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/InterpreterTests.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/interpreter/InterpreterTests.java
@@ -1,7 +1,6 @@
 package org.eclipse.emf.henshin.tests.interpreter;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.Assert.assertEquals;
 
 import org.eclipse.emf.henshin.interpreter.ApplicationMonitor;
 import org.eclipse.emf.henshin.interpreter.EGraph;
@@ -12,183 +11,159 @@
 import org.eclipse.emf.henshin.interpreter.impl.Interpreter;
 import org.eclipse.emf.henshin.model.compact.CModule;
 import org.eclipse.emf.henshin.model.resource.HenshinResourceSet;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
+public class InterpreterTests {
 
-class InterpreterTests {
-
-	
 	static String path;
-	
+
 	HenshinResourceSet res;
 	CModule mod;
 	Interpreter interpreter;
 	EGraph graph;
 	EGraph expectedResult;
-	
-	@BeforeAll
+
+	@BeforeClass
 	public static void globalSetUp() {
 		path = "src/org/eclipse/emf/henshin/tests/interpreter/";
-		
+
 	}
-	
-	@BeforeEach
+
+	@Before
 	public void localSetUp() {
 		res = new HenshinResourceSet(path);
 		mod = new CModule(res.getModule("bank.henshin"));
 //		mod = CModule.loadFromFile(path+"bank.henshin");
 		graph = new EGraphImpl(res.getResource("example-bank.xmi"));
-		
+
 		interpreter = new Interpreter(path);
 		expectedResult = new EGraphImpl(res.getResource("example-result.xmi"));
 	}
 
 	@Test
-	void executeUnitTest()
-	{
-		//Using https://www.eclipse.org/henshin/examples.php?example=bank for Testing
-		//Creating a new account for Alice...
+	public void executeUnitTest() {
+		// Using https://www.eclipse.org/henshin/examples.php?example=bank for Testing
+		// Creating a new account for Alice...
 		graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5);
-		//Transferring some Money...
+		// Transferring some Money...
 		graph = interpreter.executeUnit(graph, mod.getModule(), "transferMoney", "Alice", 1, 2, 50.0d);
-		//Deleting all accounts of Charles...
+		// Deleting all accounts of Charles...
 		graph = interpreter.executeUnit(graph, mod.getModule(), "deleteAllAccounts", "Charles");
-		//Save the result:
+		// Save the result:
 		interpreter.saveGraph(graph, "test-result.xmi");
 		String graphString, expectedString;
 		graphString = graph.toString().split("\\(")[1];
 		expectedString = expectedResult.toString().split("\\(")[1];
-		//Can only assert same Structure. Same Content needs to be checked.
+		// Can only assert same Structure. Same Content needs to be checked.
 		assertEquals(graphString, expectedString);
 	}
-	
-	@Test
-	void executeUnitStringGraphTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = interpreter.executeUnit("example-bank.xmi", mod.getModule(), "createAccount", "Alice", 5);
-			});
-		assertEquals(e.getMessage(), "Failed to apply transformation");
+
+	@Test(expected = RuntimeException.class)
+	public void executeUnitStringGraphTest() {
+		graph = interpreter.executeUnit("example-bank.xmi", mod.getModule(), "createAccount", "Alice", 5);
 	}
-	
-	@Test
-	void executeUnitStringModuleTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = interpreter.executeUnit(graph, "bank.henshin", "createAccount", "Alice", 5);
-			});
-		assertEquals(e.getMessage(), "Failed to apply transformation");
+
+	@Test(expected = RuntimeException.class)
+	public void executeUnitStringModuleTest() {
+		graph = interpreter.executeUnit(graph, "bank.henshin", "createAccount", "Alice", 5);
 	}
-	
+
 	@Test
-	void executeUnitAllStringsTest() {
-		//Using https://www.eclipse.org/henshin/examples.php?example=bank for Testing
-				//Creating a new account for Alice...
-				graph = interpreter.executeUnit("example-bank.xmi", "bank.henshin", "createAccount", "Alice", 5);
-				//Transferring some Money...
-				graph = interpreter.executeUnit(graph, "bank.henshin", "transferMoney", "Alice", 1, 2, 50.0d);
-				//Deleting all accounts of Charles...
-				graph = interpreter.executeUnit(graph, "bank.henshin", "deleteAllAccounts", "Charles");
-				//Save the result:
-				interpreter.saveGraph(graph, "test-result.xmi");
-				String graphString, expectedString;
-				graphString = graph.toString().split("\\(")[1];
-				expectedString = expectedResult.toString().split("\\(")[1];
-				//Can only assert same Structure. Same Content needs to be checked.
-				assertEquals(graphString, expectedString);
+	public void executeUnitAllStringsTest() {
+		// Using https://www.eclipse.org/henshin/examples.php?example=bank for Testing
+		// Creating a new account for Alice...
+		graph = interpreter.executeUnit("example-bank.xmi", "bank.henshin", "createAccount", "Alice", 5);
+		// Transferring some Money...
+		graph = interpreter.executeUnit(graph, "bank.henshin", "transferMoney", "Alice", 1, 2, 50.0d);
+		// Deleting all accounts of Charles...
+		graph = interpreter.executeUnit(graph, "bank.henshin", "deleteAllAccounts", "Charles");
+		// Save the result:
+		interpreter.saveGraph(graph, "test-result.xmi");
+		String graphString, expectedString;
+		graphString = graph.toString().split("\\(")[1];
+		expectedString = expectedResult.toString().split("\\(")[1];
+		// Can only assert same Structure. Same Content needs to be checked.
+		assertEquals(graphString, expectedString);
 	}
-	
-	@Test
-	void executeUnitWrongUnitTest() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = interpreter.executeUnit(graph, mod.getModule(), "createCheesecake", "Alice", 5);
-			});
-		assertEquals(e.getMessage(), "Unit: createCheesecake doesn't exist in this Module");
+
+	@Test(expected = RuntimeException.class)
+	public void executeUnitWrongUnitTest() {
+		graph = interpreter.executeUnit(graph, mod.getModule(), "createCheesecake", "Alice", 5);
 	}
-	
-	@Test
-	void executeUnitParamListTooLong() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5, "cheesecake");
-			});
-		assertEquals(e.getMessage(), "Too much ParameterValues were specified!");
+
+	@Test(expected = RuntimeException.class)
+	public void executeUnitParamListTooLong() {
+		graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5, "cheesecake");
 	}
-	
-	@Test
-	void executeUnitParamListTooShort() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice");
-			});
-		assertEquals(e.getMessage(), "Too less ParameterValues were specified!");
+
+	@Test(expected = RuntimeException.class)
+	public void executeUnitParamListTooShort() {
+		graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice");
 	}
-	
-	@Test
-	void executeUnitParamTypeNotMatching() {
-		Exception e = assertThrows(RuntimeException.class,() -> {
-			graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", "5");
-			});
-		assertEquals(e.getMessage(), "Parameter Value for accountId does not have the correct Type");
+
+	@Test(expected = RuntimeException.class)
+	public void executeUnitParamTypeNotMatching() {
+		graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", "5");
 	}
-	
+
 	@Test
-	void getResultParameterValueTest() {
+	public void getResultParameterValueTest() {
 		graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5);
 		assertEquals(interpreter.getResultParameterValue("accountId"), 5);
 	}
-	
-	@Test
-	void getResultParameterValueWrongParamName() {
-		graph = interpreter.executeUnit(graph, mod.getModule(), "createAccount", "Alice", 5);
-		assertThrows(RuntimeException.class,() -> {
-			interpreter.getResultParameterValue("cheesecake");
-			});
+
+	@Test(expected = RuntimeException.class)
+	public void getResultParameterValueWrongParamName() {
+		interpreter.getResultParameterValue("cheesecake");
 	}
-	
+
 	@Test
-	void getterSetterCoverage() {
+	public void getterSetterCoverage() {
 		Engine engine = new EngineImpl();
 		interpreter.setEngine(engine);
 		assertEquals(interpreter.getEngine(), engine);
 		ApplicationMonitor appMon = new ApplicationMonitor() {
-			
+
 			@Override
 			public void notifyUndo(UnitApplication arg0, boolean arg1) {
-				
+
 			}
-			
+
 			@Override
 			public void notifyRedo(UnitApplication arg0, boolean arg1) {
-				
+
 			}
-			
+
 			@Override
 			public void notifyExecute(UnitApplication arg0, boolean arg1) {
-				
+
 			}
-			
+
 			@Override
 			public boolean isUndo() {
 				return false;
 			}
-			
+
 			@Override
 			public boolean isCanceled() {
 				return false;
 			}
-			
+
 			@Override
 			public void cancelAndUndo() {
-				
+
 			}
-			
+
 			@Override
 			public void cancel() {
-				
+
 			}
 		};
-		
+
 		interpreter.setApplicationMonitor(appMon);
-		assertEquals(interpreter.getApplicationMonitor(),appMon);
+		assertEquals(interpreter.getApplicationMonitor(), appMon);
 	}
-	
+
 }