|
@@ -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);
|
|
|
|
+
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|