praktikumHolonsTestObjectController.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package tests;
  2. import static org.junit.Assert.assertTrue;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import classes.AbstractCpsObject;
  6. import classes.HolonObject;
  7. import ui.controller.CanvasController;
  8. import ui.controller.CategoryController;
  9. import ui.controller.MultiPurposeController;
  10. import ui.controller.ObjectController;
  11. import ui.model.Model;
  12. public class praktikumHolonsTestObjectController {
  13. protected praktikumHolonsAdapter adapter;
  14. protected Model model;
  15. protected MultiPurposeController mp;
  16. protected CategoryController cg;
  17. protected CanvasController cvs;
  18. protected ObjectController controller;
  19. /**
  20. * Setup for the Tests.
  21. */
  22. @Before
  23. public void setUp() {
  24. adapter = new praktikumHolonsAdapter();
  25. model = new Model();
  26. mp = new MultiPurposeController(model);
  27. cg = new CategoryController(model, mp);
  28. cvs = new CanvasController(model, mp);
  29. controller = new ObjectController(model, mp);
  30. }
  31. /**
  32. * Tests for the Initial HolonElements.
  33. */
  34. @Test
  35. public void testInitialHolonElements() {
  36. assertTrue("Number of Elements does not Match",
  37. ((HolonObject) mp.searchCatObj(mp.searchCat("Energy"), "Power Plant")).getElements().size() == 1);
  38. assertTrue("Element does not Match",
  39. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Energy"), "Power Plant"), "Power").getEleName()
  40. .equals("Power"));
  41. assertTrue("Element does not Match",
  42. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Energy"), "Power Plant"), "Power").getEleName()
  43. .equals("Power"));
  44. assertTrue("Total Energy does not Match",
  45. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "PC")
  46. .getTotalEnergy() == -750);
  47. assertTrue("Non-Existant Element is Found",
  48. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "") == null);
  49. }
  50. /**
  51. * Tests for adding and Deleting in Categories.
  52. */
  53. @Test
  54. public void testAddingAndDeletingInCategory() {
  55. controller.addNewElementIntoCategoryObject("Building", "House", "A", 1, -10);
  56. for (int i = 2; i < 27; i++) {
  57. controller.addNewElementIntoCategoryObject("Building", "House", adapter.generate(i), i, -10);
  58. // n(n+1) / 2
  59. assertTrue("Total Energy does not match", ((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"))
  60. .getCurrentEnergy() == -1800 + ((i * (i + 1)) / 2) * -10);
  61. assertTrue("Number of Elements does not Match",
  62. ((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House")).getElements().size() == 6 + i);
  63. }
  64. controller.deleteElementInCategory("Building", "House", "B");
  65. controller.deleteElementInCategory("Building", "House", "D");
  66. controller.deleteElementInCategory("Building", "House", "F");
  67. controller.deleteElementInCategory("Building", "House", "G");
  68. controller.deleteElementInCategory("Building", "House", "H");
  69. controller.deleteElementInCategory("Building", "House", "I");
  70. controller.deleteElementInCategory("Building", "House", "Z");
  71. controller.deleteElementInCategory("Building", "House", "TV");
  72. assertTrue("Element:B was Found",
  73. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "B") == null);
  74. assertTrue("Element:D was Found",
  75. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "D") == null);
  76. assertTrue("Element:F was Found",
  77. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "F") == null);
  78. assertTrue("Element:G was Found",
  79. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "G") == null);
  80. assertTrue("Element:H was Found",
  81. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "H") == null);
  82. assertTrue("Element:I was Found",
  83. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "I") == null);
  84. assertTrue("Element:Z was Found",
  85. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "Z") == null);
  86. assertTrue("Element:TV was Found",
  87. mp.searchEle((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"), "TV") == null);
  88. }
  89. /**
  90. * Tests for Adding and Deleting Objects on the Canvas.
  91. */
  92. @Test
  93. public void testAddingAndDeletingInCanvas() {
  94. for (int i = 0; i < 100; i++) {
  95. cvs.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  96. }
  97. for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
  98. for (int i = 0; i < 27; i++) {
  99. controller.addNewElementIntoCanvasObject(cps.getID(), adapter.generate(i), 1, -100);
  100. assertTrue("Element:" + adapter.generate(i) + " was not Created", mp
  101. .searchEle((HolonObject) mp.searchByID(cps.getID()), adapter.generate(i)) != null);
  102. }
  103. assertTrue("Element:B was not Found", mp
  104. .searchEle((HolonObject) mp.searchByID(cps.getID()), "B") != null);
  105. assertTrue("Element:D was not Found", mp
  106. .searchEle((HolonObject) mp.searchByID(cps.getID()), "D") != null);
  107. assertTrue("Element:F was not Found", mp
  108. .searchEle((HolonObject) mp.searchByID(cps.getID()), "F") != null);
  109. assertTrue("Element:G was not Found", mp
  110. .searchEle((HolonObject) mp.searchByID(cps.getID()), "G") != null);
  111. assertTrue("Element:H was not Found", mp
  112. .searchEle((HolonObject) mp.searchByID(cps.getID()), "H") != null);
  113. assertTrue("Element:I was not Found", mp
  114. .searchEle((HolonObject) mp.searchByID(cps.getID()), "I") != null);
  115. assertTrue("Element:B was not Found", mp
  116. .searchEle((HolonObject) mp.searchByID(cps.getID()), "B") != null);
  117. }
  118. for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
  119. int size = model.getSelectedCpsObjects().size();
  120. controller.addSelectedObject(cps);
  121. assertTrue("Size does not Match", model.getSelectedCpsObjects().size() == size +1);
  122. }
  123. for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
  124. System.out.println(model.getSelectedCpsObjects().size());
  125. int size = model.getSelectedCpsObjects().size();
  126. controller.deleteSelectedObject(cps);
  127. assertTrue("Size does not Match", model.getSelectedCpsObjects().size() == size -1);
  128. assertTrue("Object was not unselected", !model.getSelectedCpsObjects().contains(cps));
  129. }
  130. }
  131. }