PraktikumHolonsTestCanvasController.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package tests;
  2. import classes.AbstractCpsObject;
  3. import classes.CpsEdge;
  4. import classes.HolonObject;
  5. import classes.HolonSwitch;
  6. import ui.controller.CanvasController;
  7. import ui.controller.CategoryController;
  8. import ui.controller.MultiPurposeController;
  9. import ui.model.Model;
  10. import ui.model.IdCounter;
  11. import org.junit.Test;
  12. import org.junit.Before;
  13. import static org.junit.Assert.assertTrue;
  14. public class PraktikumHolonsTestCanvasController {
  15. protected PraktikumHolonsAdapter adapter;
  16. protected Model model;
  17. protected MultiPurposeController mp;
  18. protected CategoryController cg;
  19. protected CanvasController controller;
  20. /**
  21. * Setup for the tests.
  22. */
  23. @Before
  24. public void setUp() {
  25. adapter = new PraktikumHolonsAdapter();
  26. model = new Model();
  27. mp = new MultiPurposeController(model);
  28. cg = new CategoryController(model, mp);
  29. controller = new CanvasController(model, mp);
  30. IdCounter.setCounter(1);
  31. }
  32. /**
  33. * Tests adding objects.
  34. */
  35. @Test
  36. public void testAddingObjects() {
  37. // just adding a few things
  38. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 0);
  39. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  40. assertTrue("ID of the Object does not Match", mp.searchByID(1).getName().equals("Power Plant"));
  41. assertTrue("Type of the Object does not Match", mp.searchByID(1) instanceof HolonObject);
  42. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 1);
  43. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  44. assertTrue("ID of the Object does not Match", mp.searchByID(2).getName().equals("Power Plant"));
  45. assertTrue("Type of the Object does not Match", mp.searchByID(2) instanceof HolonObject);
  46. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 2);
  47. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  48. assertTrue("ID of the Object does not Match", mp.searchByID(3).getName().equals("Power Plant"));
  49. assertTrue("Type of the Object does not Match", mp.searchByID(3) instanceof HolonObject);
  50. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 3);
  51. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  52. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 4);
  53. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  54. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 5);
  55. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  56. assertTrue("ID of the Object does not Match", mp.searchByID(6).getName().equals("House"));
  57. assertTrue("Type of the Object does not Match", mp.searchByID(6) instanceof HolonObject);
  58. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 6);
  59. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  60. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 7);
  61. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  62. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 8);
  63. controller.addNewObject(new HolonSwitch(mp.searchCatObj(mp.searchCat("Component"), "Switch")));
  64. assertTrue("ID of the Object does not Match", mp.searchByID(9).getName().equals("Switch"));
  65. assertTrue("Type of the Object does not Match", mp.searchByID(9) instanceof HolonSwitch);
  66. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 9);
  67. controller.addNewObject(new HolonSwitch(mp.searchCatObj(mp.searchCat("Component"), "Switch")));
  68. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 10);
  69. }
  70. /**
  71. * Tests deleting Objects.
  72. */
  73. @Test(expected = NullPointerException.class)
  74. public void testDeletingObject() {
  75. // Adding Objects on Canvas.. without Coordinates
  76. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  77. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  78. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  79. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  80. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  81. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  82. controller.addNewObject(new HolonSwitch(mp.searchCatObj(mp.searchCat("Component"), "Switch")));
  83. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")));
  84. controller.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  85. controller.addNewObject(new HolonSwitch(mp.searchCatObj(mp.searchCat("Component"), "Switch")));
  86. controller.deleteObjectOnCanvas(mp.searchByID(4));
  87. assertTrue("Object:4 was not deleted", mp.searchByID(4) == null);
  88. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 9);
  89. controller.deleteObjectOnCanvas(mp.searchByID(5));
  90. assertTrue("Object:4 was not deleted", mp.searchByID(5) == null);
  91. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 8);
  92. controller.deleteObjectOnCanvas(mp.searchByID(6));
  93. assertTrue("Object:4 was not deleted", mp.searchByID(6) == null);
  94. assertTrue("Number of Objects does not Match", model.getObjectsOnCanvas().size() == 7);
  95. // deleting Non-Existant Object -> NullPointerexception
  96. controller.deleteObjectOnCanvas(mp.searchByID(4));
  97. }
  98. /**
  99. * Tests adding and deleting Edges.
  100. */
  101. @Test
  102. public void testAddingAndDeletingEdges() {
  103. HolonObject a = new HolonObject("A");
  104. controller.addNewObject(new HolonObject(a));
  105. int n = 0;
  106. // creates vertices A - Z
  107. for (int i = 2; i < 27; i++) {
  108. // adds Object on canvas
  109. HolonObject temp = new HolonObject(adapter.generate(i));
  110. controller.addNewObject(new HolonObject(temp));
  111. // connect current vertice with all other vertices
  112. for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
  113. if (!cps.equals(mp.searchByID(i)))
  114. controller.addEdgeOnCanvas(new CpsEdge(mp.searchByID(i), cps));
  115. }
  116. // test how many connections current vertice got
  117. assertTrue("Number of Connections does not Match", mp.searchByID(i).getConnectedTo().size() == i - 1);
  118. // some mathematical shit we got here. actually just means if its a
  119. // complete graph -> all vertices connected all other vertices
  120. n = model.getObjectsOnCanvas().size();
  121. assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
  122. }
  123. // same as above
  124. n = model.getObjectsOnCanvas().size();
  125. assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
  126. // here starts the deleting
  127. controller.removeEdgesOnCanvas(mp.searchEdge(13, 14));
  128. assertTrue("Number of Connection of Vertice M does not Match",
  129. mp.searchByID(13).getConnections().size() == model.getObjectsOnCanvas().size() - 2);
  130. assertTrue("Edge-M-N was not deleted", mp.searchEdge(13, 14) == null);
  131. controller.deleteObjectOnCanvas(mp.searchByID(13));
  132. assertTrue("Object:13 was not deleted", mp.searchByID(13) == null);
  133. assertTrue("Edge-A-M was not deleted", mp.searchEdge(1, 13) == null);
  134. assertTrue("Edge-B-M was not deleted", mp.searchEdge(2, 13) == null);
  135. assertTrue("Edge-C-M was not deleted", mp.searchEdge(3, 13) == null);
  136. assertTrue("Edge-D-M was not deleted", mp.searchEdge(4, 13) == null);
  137. assertTrue("Edge-E-M was not deleted", mp.searchEdge(5, 13) == null);
  138. assertTrue("Edge-F-M was not deleted", mp.searchEdge(6, 13) == null);
  139. assertTrue("Edge-M-O was not deleted", mp.searchEdge(13, 16) == null);
  140. assertTrue("Edge-M-P was not deleted", mp.searchEdge(13, 17) == null);
  141. assertTrue("Edge-M-Q was not deleted", mp.searchEdge(13, 18) == null);
  142. assertTrue("Edge-M-R was not deleted", mp.searchEdge(13, 19) == null);
  143. assertTrue("Edge-M-S was not deleted", mp.searchEdge(13, 20) == null);
  144. }
  145. }