Index: /ModelExtender/test/de/uni_hildesheim/see/model_extender/ModelExtenderTest.java
===================================================================
--- /ModelExtender/test/de/uni_hildesheim/see/model_extender/ModelExtenderTest.java	(revision 220)
+++ /ModelExtender/test/de/uni_hildesheim/see/model_extender/ModelExtenderTest.java	(revision 221)
@@ -25,4 +25,5 @@
  * 
  * @author Adam Krafczyk
+ * @author El-Sharkawy
  */
 public class ModelExtenderTest {
@@ -30,60 +31,58 @@
     /**
      * Tests whether constraints are added correctly to the model.
+     * @throws IOException Must not occur
+     * @throws MalformedFileException Must not occur
+     * @throws ParserException Must not occur
      */
     @Test
-    public void testAddConstraints() {
-        try {
-            Project model = loadModel("testdata/testAddConstraint.dimacs");
-            
-            ModelExtender extender = new ModelExtender(model);
-            
-            DeclarationFinder declFinder = new DeclarationFinder(model, FilterType.ALL, null);
-            Assert.assertEquals(0, declFinder.getVariableDeclarations(VisibilityType.ALL).size());
-            
-            ConstraintFinder constraintFinder = new ConstraintFinder(model);
-            Assert.assertEquals(0, constraintFinder.getConstraints().size());
-            
-            extender.addConstraint("A || B");
-            
-            declFinder = new DeclarationFinder(model, FilterType.ALL, null);
-            Assert.assertEquals(2, declFinder.getVariableDeclarations(VisibilityType.ALL).size());
-            
-            constraintFinder = new ConstraintFinder(model);
-            Assert.assertEquals(1, constraintFinder.getConstraints().size());
-            
-        } catch (IOException | MalformedFileException | ParserException e) {
-            e.printStackTrace();
-            Assert.fail();
-        }
+    public void testAddConstraints() throws IOException, MalformedFileException, ParserException {
+        Project model = loadModel("testdata/testAddConstraint.dimacs");
+        
+        ModelExtender extender = new ModelExtender(model);
+        
+        // Test precondition: Empty model (no constraints, no variables)
+        DeclarationFinder declFinder = new DeclarationFinder(model, FilterType.ALL, null);
+        Assert.assertEquals(0, declFinder.getVariableDeclarations(VisibilityType.ALL).size());    
+        ConstraintFinder constraintFinder = new ConstraintFinder(model);
+        Assert.assertEquals(0, constraintFinder.getConstraints().size());
+        
+        // Extend model
+        extender.addConstraint("A || B");
+        
+        // Test postcondition: 2 variables + 1 Constraint
+        declFinder = new DeclarationFinder(model, FilterType.ALL, null);
+        Assert.assertEquals(2, declFinder.getVariableDeclarations(VisibilityType.ALL).size());
+        constraintFinder = new ConstraintFinder(model);
+        Assert.assertEquals(1, constraintFinder.getConstraints().size());
+        DimacsTestUtils.containsConstraint(model, "A", "B");
     }
     
     /**
      * Tests whether the newly added constraints use the existing variables.
+     * @throws IOException Must not occur
+     * @throws MalformedFileException Must not occur
+     * @throws ParserException Must not occur
      */
     @Test
-    public void testUseExistingVariables() {
-        try {
-            Project model = loadModel("testdata/testUseExistingVariables.dimacs");
-            
-            ModelExtender extender = new ModelExtender(model);
-            
-            DeclarationFinder declFinder = new DeclarationFinder(model, FilterType.ALL, null);
-            Assert.assertEquals(2, declFinder.getVariableDeclarations(VisibilityType.ALL).size());
-            
-            ConstraintFinder constraintFinder = new ConstraintFinder(model);
-            Assert.assertEquals(0, constraintFinder.getConstraints().size());
-            
-            extender.addConstraint("A || B || C");
-            
-            declFinder = new DeclarationFinder(model, FilterType.ALL, null);
-            Assert.assertEquals(3, declFinder.getVariableDeclarations(VisibilityType.ALL).size());
-            
-            constraintFinder = new ConstraintFinder(model);
-            Assert.assertEquals(1, constraintFinder.getConstraints().size());
-            
-        } catch (IOException | MalformedFileException | ParserException e) {
-            e.printStackTrace();
-            Assert.fail();
-        }
+    public void testUseExistingVariables() throws IOException, MalformedFileException, ParserException {
+        Project model = loadModel("testdata/testUseExistingVariables.dimacs");
+        
+        ModelExtender extender = new ModelExtender(model);
+        
+        // Test precondition: Empty model (2 variables, but no constraints)
+        DeclarationFinder declFinder = new DeclarationFinder(model, FilterType.ALL, null);
+        Assert.assertEquals(2, declFinder.getVariableDeclarations(VisibilityType.ALL).size());        
+        ConstraintFinder constraintFinder = new ConstraintFinder(model);
+        Assert.assertEquals(0, constraintFinder.getConstraints().size());
+        
+        // Extend model
+        extender.addConstraint("A || B || C");
+        
+        // Test postcondition: 3 variables + 1 Constraint
+        declFinder = new DeclarationFinder(model, FilterType.ALL, null);
+        Assert.assertEquals(3, declFinder.getVariableDeclarations(VisibilityType.ALL).size());
+        constraintFinder = new ConstraintFinder(model);
+        Assert.assertEquals(1, constraintFinder.getConstraints().size());
+        DimacsTestUtils.containsConstraint(model, "A", "B", "C");
     }
     
@@ -91,45 +90,53 @@
      * Tests whether additional constraints for variables with <, > or = are
      * added correctly.
+     * @throws IOException Must not occur
+     * @throws MalformedFileException Must not occur
+     * @throws ParserException Must not occur
      */
     @Test
-    public void testAdditionalConstraints() {
-        try {
-            Project model = loadModel("testdata/testAdditionalConstraints.dimacs");
-            
-            ModelExtender extender = new ModelExtender(model);
-            
-            extender.addConstraint("A<6");
-            extender.addConstraint("A<4");
-            
-            extender.addConstraint("B>1");
-            extender.addConstraint("B>2");
-            
-            extender.addConstraint("C=8");
-            
-            extender.addConstraint("D>=2");
-            extender.addConstraint("D>=6");
-            extender.addConstraint("D>1");
-            
-            
-            extender.addConstraint("E<=8");
-            extender.addConstraint("E<=3");
-            extender.addConstraint("E<4");
-            
-            StringWriter dimacsStringWriter = new StringWriter();
-            DimacsWriter writer = new DimacsWriter(model, dimacsStringWriter);
-            writer.write();
-            
-            String dimacsString = dimacsStringWriter.toString();
-            
-            testA(dimacsString);
-            testB(dimacsString);
-            testC(dimacsString);
-            testD(dimacsString);
-            testE(dimacsString);
-            
-        } catch (IOException | MalformedFileException | ParserException e) {
-            e.printStackTrace();
-            Assert.fail();
-        }
+    public void testAdditionalConstraints() throws IOException, MalformedFileException, ParserException {
+        Project model = loadModel("testdata/testAdditionalConstraints.dimacs");    
+        ModelExtender extender = new ModelExtender(model);
+        
+        // Test precondition: 5 variables, 1 constraint
+        DeclarationFinder declFinder = new DeclarationFinder(model, FilterType.ALL, null);
+        Assert.assertEquals(5, declFinder.getVariableDeclarations(VisibilityType.ALL).size());        
+        ConstraintFinder constraintFinder = new ConstraintFinder(model);
+        Assert.assertEquals(1, constraintFinder.getConstraints().size());
+        
+        extender.addConstraint("A<6");
+        extender.addConstraint("A<4");
+        
+        extender.addConstraint("B>1");
+        extender.addConstraint("B>2");
+        
+        extender.addConstraint("C=8");
+        
+        extender.addConstraint("D>=2");
+        extender.addConstraint("D>=6");
+        extender.addConstraint("D>1");
+        
+        
+        extender.addConstraint("E<=8");
+        extender.addConstraint("E<=3");
+        extender.addConstraint("E<4");
+        
+        // Test postcondition: 5 + 11 Variables
+        declFinder = new DeclarationFinder(model, FilterType.ALL, null);
+        Assert.assertEquals(16, declFinder.getVariableDeclarations(VisibilityType.ALL).size());  
+        
+        StringWriter dimacsStringWriter = new StringWriter();
+        DimacsWriter writer = new DimacsWriter(model, dimacsStringWriter);
+        writer.write();
+        
+        String dimacsString = dimacsStringWriter.toString();
+        System.out.println(dimacsString);
+        
+        // Test creation of constraints
+        testA(dimacsString);
+        testB(dimacsString);
+        testC(dimacsString);
+        testD(dimacsString);
+        testE(dimacsString);
     }
 
@@ -247,6 +254,7 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -aE5, aL6));
         
-        // A=6 and A<4 do not intersect:
-        //  A=5 XOR A<4 == !A=5 || !A<4 AND A=5 || A<4
+        // A=5 and A<4 do not intersect:
+        //  A=5 XOR A<4
+        //  A=5 -> !A<4 AND !A=5 -> A<4
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -aE5, -aL4));
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, aE5, aL4));
@@ -268,5 +276,9 @@
      */
     private Project loadModel(String filename) throws FileNotFoundException, IOException, MalformedFileException {
-        return new DimacsReader(new File(filename)).getModel();
+        Project model = null;
+        try (DimacsReader reader = new DimacsReader(new File(filename))) {
+            model = reader.getModel();
+        }
+        return model;
     }
     
