PraktikumHolonsTestLoadAndStoreController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package tests;
  2. import java.awt.Point;
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7. import java.util.LinkedList;
  8. import org.junit.Before;
  9. import org.junit.Test;
  10. import classes.Category;
  11. import classes.CpsEdge;
  12. import classes.AbstractCpsObject;
  13. import classes.HolonElement;
  14. import classes.HolonObject;
  15. import classes.HolonSwitch;
  16. import classes.IdCounter;
  17. import static org.junit.Assert.assertTrue;
  18. import ui.controller.CanvasController;
  19. import ui.controller.CategoryController;
  20. import ui.controller.GlobalController;
  21. import ui.controller.LoadController;
  22. import ui.controller.MultiPurposeController;
  23. import ui.controller.ObjectController;
  24. import ui.controller.StoreController;
  25. import ui.model.Model;
  26. import ui.view.UnitGraph;
  27. /**
  28. * Tests for LoadAndStoreController.
  29. *
  30. * @author Gruppe14
  31. */
  32. public class PraktikumHolonsTestLoadAndStoreController {
  33. protected PraktikumHolonsAdapter adapter;
  34. protected Model model;
  35. protected MultiPurposeController mp;
  36. protected CategoryController cg;
  37. protected CanvasController cvs;
  38. protected ObjectController obj;
  39. protected GlobalController global;
  40. protected StoreController storeController;
  41. protected LoadController loadController;
  42. protected IdCounter id;
  43. protected String path = System.getProperty("user.home") + "/HolonGUI/Test/";
  44. // /**
  45. // * Setup for the Tests.
  46. // */
  47. // @Before
  48. // public void setUp() {
  49. // adapter = new PraktikumHolonsAdapter();
  50. // model = new Model();
  51. // mp = new MultiPurposeController(model);
  52. // cg = new CategoryController(model, mp);
  53. // cvs = new CanvasController(model, mp);
  54. // obj = new ObjectController(model, mp);
  55. // storeController = new StoreController(model);
  56. // loadController = new LoadController(model, cg, cvs, obj, global, mp);
  57. // // cg.initCategories();
  58. // // obj.initHolonElements();
  59. // File file = new File(path);
  60. // file.mkdirs();
  61. // }
  62. //
  63. // /**
  64. // * minimal tests for saving.
  65. // */
  66. // @Test
  67. // public void testStoreMinimal() {
  68. // try {
  69. // File sav = new File(path + "TestSavMinimal.json");
  70. // storeController.writeSaveFile(sav.getAbsolutePath());
  71. // assertTrue("Save File was not created", new File(path + "TestSavMinimal.json").exists());
  72. //
  73. // File cat = new File(path + "TestCategoryMinimal.json");
  74. // //storeController.writeCategoryFile(cat.getAbsolutePath());
  75. // assertTrue("Category File was not created", new File(path + "TestCategoryMinimal.json").exists());
  76. //
  77. // File canvas = new File(path + "TestCanvasMinimal.json");
  78. // storeController.writeCanvasFile(canvas.getAbsolutePath());
  79. // assertTrue("Canvas File was not created", new File(path + "TestCanvasMinimal.json").exists());
  80. //
  81. // assertTrue("Non Existant File exist", !new File(path + "TestDummyMinimal.json").exists());
  82. //
  83. // } catch (IOException e) {
  84. // // TODO Auto-generated catch block
  85. // e.printStackTrace();
  86. // }
  87. // }
  88. //
  89. // /**
  90. // * basic tests for saving.
  91. // */
  92. // @Test
  93. // public void testStoreBasic() {
  94. //
  95. // for (int i = 1; i <= 26; i++) {
  96. // cg.addNewCategory(adapter.generate(i));
  97. // assertTrue("Number of Categories does not match", model.getCategories().size() == i + 3);
  98. // assertTrue("Category was not created", mp.searchCat(adapter.generate(i)) != null);
  99. // for (int j = 1; j <= 10; j++) {
  100. // cg.addNewHolonObject(mp.searchCat(adapter.generate(i)), adapter.generate(j),
  101. // new ArrayList<HolonElement>(), "");
  102. // assertTrue("Number of Objects does not match",
  103. // mp.searchCat(adapter.generate(i)).getObjects().size() == j);
  104. // assertTrue("Object was not created", mp.searchCat(adapter.generate(i)).getObjects().get(j - 1) != null);
  105. // }
  106. // }
  107. //
  108. // // here some Objects were dropped on the canvas
  109. // for (int i = 1; i <= 10; i++) {
  110. // cvs.addNewObject(new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House")));
  111. // assertTrue("Size of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == i);
  112. // assertTrue("Object was not added", model.getObjectsOnCanvas().get(i - 1) != null
  113. // && model.getObjectsOnCanvas().get(i - 1).getObjName().equals("House"));
  114. // }
  115. //
  116. // HolonSwitch sw = new HolonSwitch(mp.searchCatObj(mp.searchCat("Component"), "Switch"));
  117. // sw.setPosition(77, 88);
  118. // cvs.addNewObject(sw);
  119. //
  120. // try {
  121. // File sav = new File(path + "TestSavBasic.json");
  122. // storeController.writeSaveFile(sav.getAbsolutePath());
  123. // assertTrue("Save File was not created", new File(path + "TestSavBasic.json").exists());
  124. //
  125. // File canvas = new File(path + "TestCanvasBasic.json");
  126. // storeController.writeCanvasFile(canvas.getAbsolutePath());
  127. // assertTrue("Canvas File was not created", new File(path + "TestCanvasBasic.json").exists());
  128. //
  129. // assertTrue("Non Existant File exist", !new File(path + "TestDummyMinimal.json").exists());
  130. //
  131. // } catch (IOException e) {
  132. // // TODO Auto-generated catch block
  133. // e.printStackTrace();
  134. // }
  135. // }
  136. //
  137. // /**
  138. // * advanced tests for saving.
  139. // */
  140. // @Test
  141. // public void testStoreAdvanced() {
  142. //
  143. // setGraphPoints((HolonObject) mp.searchCatObj(mp.searchCat("Building"), "House"));
  144. //
  145. // int n = 0;
  146. // for (int i = 0; i < 10; i++) {
  147. // for (int j = 0; j < 10; j++) {
  148. // HolonObject h = new HolonObject(mp.searchCatObj(mp.searchCat("Building"), "House"));
  149. // h.setPosition(j * 50, i * 50);
  150. // cvs.addNewObject(h);
  151. // setGraphPoints(h);
  152. // for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
  153. // if (!cps.equals(h))
  154. // cvs.addEdgeOnCanvas(new CpsEdge(h, cps));
  155. // }
  156. //
  157. // // vollständiger Graph
  158. // n = model.getObjectsOnCanvas().size();
  159. // assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
  160. // }
  161. // }
  162. //
  163. // try {
  164. // File sav = new File(path + "TestSavAdvanced.json");
  165. // storeController.writeSaveFile(sav.getAbsolutePath());
  166. // assertTrue("Save File was not created", new File(path + "TestSavAdvanced.json").exists());
  167. //
  168. // } catch (IOException e) {
  169. // // TODO Auto-generated catch block
  170. // e.printStackTrace();
  171. // }
  172. //
  173. // }
  174. //
  175. // /**
  176. // * minimal tests for loading a save file.
  177. // */
  178. // @Test
  179. // public void testLoadMinimal() {
  180. // try {
  181. // // Category Tests
  182. // Category building = mp.searchCat("Building");
  183. // assertTrue("Number of Categories does not match", model.getCategories().size() == 3);
  184. // assertTrue("TestFile was not found", new File(path + "TestCategoryMinimal.json").exists());
  185. // loadController.readJson(path + "TestCategoryMinimal.json");
  186. // assertTrue("Number of Categories does not match", model.getCategories().size() == 3);
  187. // // Tests if its same instance and if Name is the same
  188. // assertTrue("Same instance of Category:Building", building != mp.searchCat("Building")
  189. // && building.getName().equals(mp.searchCat("Building").getName()));
  190. //
  191. // // Canvas Tests.. basically nothing happens because nothing is on
  192. // // the Canvas
  193. // assertTrue("Number of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 0);
  194. // assertTrue("TestFile was not found", new File(path + "TestCanvasMinimal.json").exists());
  195. // loadController.readJson(path + "TestCanvasMinimal.json");
  196. // assertTrue("Number of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 0);
  197. //
  198. // // Save File tests basically both Test from Above Combined
  199. // building = mp.searchCat("Building");
  200. // assertTrue("Number of Objects in Energy does not Match", mp.searchCat("Energy").getObjects().size() == 1);
  201. // assertTrue("TestFile was not found", new File(path + "TestSavMinimal.json").exists());
  202. // loadController.readJson(path + "TestSavMinimal.json");
  203. // assertTrue("Number of Objects in Energy does not Match", mp.searchCat("Energy").getObjects().size() == 1);
  204. // assertTrue("Number of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 0);
  205. // assertTrue("Same instance of Category:Building", building != mp.searchCat("Building")
  206. // && building.getName().equals(mp.searchCat("Building").getName()));
  207. //
  208. // } catch (IOException e) {
  209. // // TODO Auto-generated catch block
  210. // e.printStackTrace();
  211. // }
  212. // }
  213. //
  214. // /**
  215. // * basic tests for loading a save file.
  216. // */
  217. // @Test
  218. // public void testLoadBasic() {
  219. // assertTrue("Non-Existant Category Exists", mp.searchCat("J") == null);
  220. // assertTrue("Non-Existant Category Exists", mp.searchCat("U") == null);
  221. // assertTrue("Non-Existant Category Exists", mp.searchCat("L") == null);
  222. // assertTrue("Non-Existant Category Exists", mp.searchCat("I") == null);
  223. // assertTrue("Non-Existant Category Exists", mp.searchCat("A") == null);
  224. // assertTrue("Non-Existant Category Exists", mp.searchCat("N") == null);
  225. //
  226. // try {
  227. // assertTrue("Objects on Canvas is not 0", model.getObjectsOnCanvas().size() == 0);
  228. // assertTrue("Canvas File was not found", new File(path + "TestCanvasBasic.json").exists());
  229. // loadController.readJson(path + "TestCanvasBasic.json");
  230. //
  231. // assertTrue("NUmber of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 11);
  232. // for (AbstractCpsObject obj : model.getObjectsOnCanvas()) {
  233. // assertTrue("Not instance of HolonObject", obj instanceof HolonObject || obj instanceof HolonSwitch);
  234. //
  235. // }
  236. //
  237. // assertTrue("NUmber of Categories not match", model.getCategories().size() == 3);
  238. // assertTrue("Canvas File was not found", new File(path + "TestSavBasic.json").exists());
  239. // loadController.readJson(path + "TestSavBasic.json");
  240. // assertTrue("NUmber of Categories not match", model.getCategories().size() == 29);
  241. // assertTrue("Existant Category dont Exists", mp.searchCat("J") != null);
  242. // assertTrue("Existant Category dont Exists", mp.searchCat("U") != null);
  243. // assertTrue("Existant Category dont Exists", mp.searchCat("L") != null);
  244. // assertTrue("Existant Category dont Exists", mp.searchCat("I") != null);
  245. // assertTrue("Existant Category dont Exists", mp.searchCat("A") != null);
  246. // assertTrue("Existant Category dont Exists", mp.searchCat("N") != null);
  247. // assertTrue("Existant Object dont Exists", mp.searchCatObj(mp.searchCat("Z"), "A") != null);
  248. // assertTrue("Existant Object dont Exists", mp.searchCatObj(mp.searchCat("Z"), "B") != null);
  249. // assertTrue("Existant Object dont Exists", mp.searchCatObj(mp.searchCat("Z"), "C") != null);
  250. // assertTrue("Existant Object dont Exists", mp.searchCatObj(mp.searchCat("Z"), "D") != null);
  251. // assertTrue("Existant Object dont Exists", mp.searchCatObj(mp.searchCat("Z"), "E") != null);
  252. // assertTrue("Existant Object dont Exists", mp.searchCatObj(mp.searchCat("Z"), "F") != null);
  253. //
  254. // } catch (IOException e) {
  255. // // TODO Auto-generated catch block
  256. // e.printStackTrace();
  257. // }
  258. // }
  259. //
  260. // /**
  261. // * advanced tests for loading a save file.
  262. // */
  263. // @Test
  264. // public void testLoadAdvanced() {
  265. //
  266. // try {
  267. // assertTrue("Objects on Canvas is not 0", model.getObjectsOnCanvas().size() == 0);
  268. // assertTrue("Save File was not found", new File(path + "TestSavAdvanced.json").exists());
  269. // loadController.readJson(path + "TestSavAdvanced.json");
  270. // assertTrue("Objects on Canvas is not 100", model.getObjectsOnCanvas().size() == 100);
  271. //
  272. // int n = model.getObjectsOnCanvas().size();
  273. // assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
  274. // assertTrue("Element has no UnitGraph", !mp
  275. // .searchEle((HolonObject) model.getObjectsOnCanvas().get(77), "Fridge").getGraphPoints().isEmpty());
  276. // assertTrue("Points in UnitGraph does not Match",
  277. // mp.searchEle((HolonObject) model.getObjectsOnCanvas().get(77), "Fridge").getGraphPoints()
  278. // .size() == 3);
  279. //
  280. // } catch (IOException e) {
  281. // // TODO Auto-generated catch block
  282. // e.printStackTrace();
  283. // }
  284. // }
  285. //
  286. // /**
  287. // * Test for FileNotFound.
  288. // *
  289. // * @throws IOException
  290. // * FileNotFoundException
  291. // */
  292. // @Test(expected = FileNotFoundException.class)
  293. // public void testLoadException() throws IOException {
  294. // assertTrue("Save File was not found", !new File(path + "TestSavDummy.json").exists());
  295. // loadController.readJson(path + "TestSavDummy.json");
  296. // }
  297. //
  298. // /**
  299. // * sets the graph points in all elements of an Object.
  300. // *
  301. // * @param obj
  302. // * the Object
  303. // */
  304. // public void setGraphPoints(HolonObject obj) {
  305. // LinkedList<Point> list = new LinkedList<>();
  306. // list.add(new Point(0, 0));
  307. // list.add(new Point(125, 50));
  308. // list.add(new Point(249, 0));
  309. // UnitGraph u = new UnitGraph(model, null);
  310. // u.repaintWithNewElement(obj.getElements());
  311. // u.fillArrayofValue();
  312. // for (HolonElement ele : obj.getElements()) {
  313. // ele.setGraphPoints(list);
  314. // }
  315. //
  316. // }
  317. }