package tests; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import classes.AbstractCanvasObject; import classes.HolonObject; import ui.controller.CanvasController; import ui.controller.CategoryController; import ui.controller.Control; import ui.controller.MultiPurposeController; import ui.controller.ObjectController; import ui.model.Model; /** * Tests for the ObjectController. * * @author Gruppe14 */ public class PraktikumHolonsTestObjectController { protected PraktikumHolonsAdapter adapter; protected Model model; protected MultiPurposeController mp; protected CategoryController cg; protected CanvasController cvs; protected ObjectController controller; /** * Setup for the Tests. */ @Before public void setUp() { adapter = new PraktikumHolonsAdapter(); model = new Model(); mp = new MultiPurposeController(model); cg = new CategoryController(model, mp, new Control(model)); cvs = new CanvasController(model, mp); controller = new ObjectController(model, mp); } /** * Tests for the Initial HolonElements. */ @Test public void testInitialHolonElements() { assertTrue("Number of Elements does not Match", ((HolonObject) mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")).getElements().size() == 1); // assertTrue("Element does not Match", // mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Energy"), "Power Plant"), "Power").getEleName() // .equals("Power")); // assertTrue("Element does not Match", // mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Energy"), "Power Plant"), "Power").getEleName() // .equals("Power")); // assertTrue("Total Energy does not Match", // mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "PC") // .getTotalEnergy() == -750); // assertTrue("Non-Existant Element is Found", // mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "") == null); } /** * Tests for adding and Deleting in Categories. */ @Test public void testAddingAndDeletingInCategory() { controller.addNewElementIntoCategoryObject("Building", "House", "A", -10); for (int i = 2; i < 27; i++) { controller.addNewElementIntoCategoryObject("Building", "House", adapter.generate(i), -10); // n(n+1) / 2 assertTrue("Number of Elements does not Match", ((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House")).getElements().size() == 6 + i); } } /** * Tests for Adding and Deleting Objects on the Canvas. */ @Test public void testAddingAndDeletingInCanvas() { for (int i = 0; i < 100; i++) { cvs.addNewObject(new HolonObject((HolonObject)mp.searchCatObj(mp.searchCat("Building"), "House"))); } for (AbstractCanvasObject cps : model.getObjectsOnCanvas()) { int size = model.getSelectedObjects().size(); controller.addSelectedObject(cps); assertTrue("Size does not Match", model.getSelectedObjects().size() == size + 1); } for (AbstractCanvasObject cps : model.getObjectsOnCanvas()) { System.out.println(model.getSelectedObjects().size()); int size = model.getSelectedObjects().size(); controller.removeObjectFromSelection(cps); assertTrue("Size does not Match", model.getSelectedObjects().size() == size - 1); assertTrue("Object was not unselected", !model.getSelectedObjects().contains(cps)); } } }