Переглянути джерело

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Edgardo Palza 8 роки тому
батько
коміт
9915b2a66a

+ 109 - 3
src/tests/praktikumHolonsTestCanvasController.java

@@ -1,32 +1,138 @@
 package tests;
 package tests;
 
 
 import static org.junit.Assert.*;
 import static org.junit.Assert.*;
+import static org.junit.Assert.fail;
 
 
 import org.junit.Before;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.Test;
+import com.sun.xml.internal.ws.policy.spi.AssertionCreationException;
 
 
+import classes.CpsEdge;
+import classes.CpsObject;
+import classes.HolonObject;
+import classes.HolonSwitch;
 import ui.controller.CanvasController;
 import ui.controller.CanvasController;
+import ui.controller.CategoryController;
 import ui.controller.MultiPurposeController;
 import ui.controller.MultiPurposeController;
 import ui.model.Model;
 import ui.model.Model;
+import ui.model.idCounter;
+
 public class praktikumHolonsTestCanvasController {
 public class praktikumHolonsTestCanvasController {
 
 
 	protected praktikumHolonsAdapter adapter;
 	protected praktikumHolonsAdapter adapter;
 	protected Model model;
 	protected Model model;
 	protected MultiPurposeController mp;
 	protected MultiPurposeController mp;
+	protected CategoryController cg;
 	protected CanvasController controller;
 	protected CanvasController controller;
 
 
-	
 	@Before
 	@Before
 	public void setUp() {
 	public void setUp() {
 		adapter = new praktikumHolonsAdapter();
 		adapter = new praktikumHolonsAdapter();
 		model = new Model();
 		model = new Model();
 		mp = new MultiPurposeController(model);
 		mp = new MultiPurposeController(model);
+		cg = new CategoryController(model, mp);
 		controller = new CanvasController(model, mp);
 		controller = new CanvasController(model, mp);
+		idCounter.setCounter(1);
 	}
 	}
-	
+
 	@Test
 	@Test
 	public void testAddingObjects() {
 	public void testAddingObjects() {
+		//just adding a few things
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 0);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		assertTrue("ID of the Object does not Match", mp.searchByID(1).getName().equals("Power Plant"));
+		assertTrue("Type of the Object does not Match", mp.searchByID(1) instanceof HolonObject);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 1);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		assertTrue("ID of the Object does not Match", mp.searchByID(2).getName().equals("Power Plant"));
+		assertTrue("Type of the Object does not Match", mp.searchByID(2) instanceof HolonObject);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 2);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		assertTrue("ID of the Object does not Match", mp.searchByID(3).getName().equals("Power Plant"));
+		assertTrue("Type of the Object does not Match", mp.searchByID(3) instanceof HolonObject);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 3);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 4);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 5);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Building"), "House")));
+		assertTrue("ID of the Object does not Match", mp.searchByID(6).getName().equals("House"));
+		assertTrue("Type of the Object does not Match", mp.searchByID(6) instanceof HolonObject);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 6);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Building"), "House")));
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 7);
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Building"), "House")));
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 8);
+		controller.addNewObject(new HolonSwitch(mp.searchCategoryObject(mp.searchCategory("Component"), "Switch")));
+		assertTrue("ID of the Object does not Match", mp.searchByID(9).getName().equals("Switch"));
+		assertTrue("Type of the Object does not Match", mp.searchByID(9) instanceof HolonSwitch);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 9);
+		controller.addNewObject(new HolonSwitch(mp.searchCategoryObject(mp.searchCategory("Component"), "Switch")));
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 10);
+	}
+
+	@Test(expected = NullPointerException.class)
+	public void testDeletingObject() {
+		// Adding Objects on Canvas.. without Coordinates
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Building"), "House")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Building"), "House")));
+		controller.addNewObject(new HolonSwitch(mp.searchCategoryObject(mp.searchCategory("Component"), "Switch")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Energy"), "Power Plant")));
+		controller.addNewObject(new HolonObject(mp.searchCategoryObject(mp.searchCategory("Building"), "House")));
+		controller.addNewObject(new HolonSwitch(mp.searchCategoryObject(mp.searchCategory("Component"), "Switch")));
+
+		controller.deleteObjectOnCanvas(mp.searchByID(4));
+		assertTrue("Object:4 was not deleted", mp.searchByID(4) == null);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 9);
+		controller.deleteObjectOnCanvas(mp.searchByID(5));
+		assertTrue("Object:4 was not deleted", mp.searchByID(5) == null);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 8);
+		controller.deleteObjectOnCanvas(mp.searchByID(6));
+		assertTrue("Object:4 was not deleted", mp.searchByID(6) == null);
+		assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 7);
+
+		// deleting Non-Existant Object -> NullPointerexception
+		controller.deleteObjectOnCanvas(mp.searchByID(4));
+	}
+
+	@Test
+	public void testAddingAndDeletingEdges() {
+		HolonObject A = new HolonObject("A");
+		controller.addNewObject(new HolonObject(A));
+		int n = 0;
+
+		//creates vertices A - Z
+		for (int i = 2; i < 27; i++) {
+			//adds Object on canvas
+			HolonObject temp = new HolonObject(adapter.generate(i));
+			controller.addNewObject(new HolonObject(temp));
+			//connect current vertice with all other vertices
+			for (CpsObject cps : model.getObjectsOnCanvas()) {
+				if (!cps.equals(mp.searchByID(i)))
+					controller.addEdgeOnCanvas(new CpsEdge(mp.searchByID(i), cps));
+			}
+
+			//test how many connections current vertice got
+			assertTrue("Number of Connections does not Match", mp.searchByID(i).getConnectedTo().size() == i - 1);
+			// some mathematical shit we got here. actually just means if its a
+			// complete graph -> all vertices connected all other vertices
+			n = model.getObjectsOnCanvas().size();
+			assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
+		}
+		//same as above
+		n = model.getObjectsOnCanvas().size();
+		assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
 		
 		
+		//here starts the deleting FUNKTIONIERT NICHT WEIL ES NICHT IM CONTROLLER GEMACHT WIRD
+		//EDGES AUF DEM CVS WERDEN GELÖSCHT JEDOCH DIE CONNECTIONS IN DEN OBJEKTEN NICHT AKTUALISIERT
+		controller.removeEdgesOnCanvas(mp.searchCpsEdge(13, 14));
+		System.out.println(mp.searchByID(13).getConnections().size() + ":" + model.getObjectsOnCanvas().size());
+		assertTrue("Number of Connection of Vertice M does not Match", mp.searchByID(13).getConnections().size() == model.getObjectsOnCanvas().size() - 2);
+		assertTrue("Edge-M-N was not deleted", mp.searchCpsEdge(13, 14) == null);
+
 	}
 	}
-	
 }
 }

+ 1 - 3
src/tests/praktikumHolonsTestCategoryController.java

@@ -5,9 +5,6 @@ import static org.junit.Assert.*;
 import org.junit.Before;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.Test;
 
 
-import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;
-
-import classes.Category;
 import classes.HolonObject;
 import classes.HolonObject;
 import ui.controller.CategoryController;
 import ui.controller.CategoryController;
 import ui.controller.MultiPurposeController;
 import ui.controller.MultiPurposeController;
@@ -140,5 +137,6 @@ public class praktikumHolonsTestCategoryController {
 		assertTrue("Object was not deleted", mp.searchCategoryObject(mp.searchCategory("Energy"), "G_0") == null);
 		assertTrue("Object was not deleted", mp.searchCategoryObject(mp.searchCategory("Energy"), "G_0") == null);
 		controller.deleteObject("Energy", "H_0");
 		controller.deleteObject("Energy", "H_0");
 		assertTrue("Object was not deleted", mp.searchCategoryObject(mp.searchCategory("Energy"), "H_0") == null);
 		assertTrue("Object was not deleted", mp.searchCategoryObject(mp.searchCategory("Energy"), "H_0") == null);
+		assertTrue("Number of Objects does not match", mp.searchCategory("Energy").getObjects().size() == 47);
 	}
 	}
 }
 }

+ 13 - 0
src/ui/controller/MultiPurposeController.java

@@ -4,6 +4,7 @@ import java.util.HashMap;
 import java.util.Map.Entry;
 import java.util.Map.Entry;
 
 
 import classes.Category;
 import classes.Category;
+import classes.CpsEdge;
 import classes.CpsObject;
 import classes.CpsObject;
 import classes.HolonElement;
 import classes.HolonElement;
 import classes.HolonObject;
 import classes.HolonObject;
@@ -84,6 +85,18 @@ public class MultiPurposeController {
 		else
 		else
 			return object.getElements().get(idx);
 			return object.getElements().get(idx);
 	}
 	}
+	
+	public CpsEdge searchCpsEdge(int a, int b) {
+		
+		CpsObject A = searchByID(a);
+		CpsObject B = searchByID(b);
+		
+		for (CpsEdge edge : MODEL.getEdgesOnCanvas()) {
+			if(edge.getA().getObjName().equals(A.getObjName()) && (edge.getB().getObjName().equals(B.getObjName())))
+					return edge;
+		}
+		return null;
+	}
 
 
 	/**
 	/**
 	 * Decrement the Indices if a Key as been removed
 	 * Decrement the Indices if a Key as been removed