praktikumHolonsTestCanvasController.java 8.0 KB

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