瀏覽代碼

fix addpopup

Teh-Hai Julian Zheng 7 年之前
父節點
當前提交
5e06178778

+ 5 - 4
src/tests/praktikumHolonsAdapter.java

@@ -6,6 +6,7 @@ import java.util.Iterator;
 import static java.lang.Math.*;
 
 import classes.Category;
+import classes.CpsObject;
 import classes.HolonElement;
 import classes.HolonObject;
 
@@ -22,7 +23,7 @@ public class praktikumHolonsAdapter {
 	 * @param arr
 	 */
 	public void generateCategories(ArrayList<Category> arr) {
-		for (int i = 0; i < 18279; i++) {
+		for (int i = 1; i < 18279; i++) {
 			arr.add(new Category(generate(i)));
 		}
 	}
@@ -31,8 +32,8 @@ public class praktikumHolonsAdapter {
 	 * Generate Sequence of Objects from A - ZZZ
 	 * @param arr
 	 */
-	public void generateObjects(ArrayList<HolonObject> arr) {
-		for (int i = 0; i < 18279; i++) {
+	public void generateObjects(ArrayList<CpsObject> arr) {
+		for (int i = 1; i < 18279; i++) {
 			arr.add(new HolonObject(generate(i)));
 		}
 	}
@@ -42,7 +43,7 @@ public class praktikumHolonsAdapter {
 	 * @param arr
 	 */
 	public void generateElements(ArrayList<HolonElement> arr) {
-		for (int i = 0; i < 18279; i++) {
+		for (int i = 1; i < 18279; i++) {
 			arr.add(new HolonElement(generate(i), 1, 10));
 		}
 	}

+ 65 - 0
src/tests/praktikumHolonsTestClasses.java

@@ -1,8 +1,73 @@
 package tests;
 
 import classes.*;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+
+import org.junit.Before;
+import org.junit.Test;
 
 public class praktikumHolonsTestClasses {
 
+	@Test
+	public void testCategory() {
+		Category test1 = new Category("Test1");
+		Category test2 = new Category("Test2");
+		HolonObject obj1 = new HolonObject("Test Object");
+		ArrayList<CpsObject> arr = new ArrayList<>();
+
+		
+		assertTrue("Name not correct", test1.getName().equals("Test1"));
+		assertTrue("Name not correct", test2.getName().equals("Test2"));
+		assertTrue("Name should not be the same", !test1.getName().equals(test2.getName()));
+		assertTrue("Should be empty", test1.getObjects().size() == 0);
+		test1.getObjects().add(obj1);
+		assertTrue("Should not be empty", test1.getObjects().size() == 1);
+		assertTrue("Should be empty", test2.getObjects().size() == 0);
+		test1.setObjects(arr);
+		assertTrue("Should be empty", test1.getObjects().size() == 0);
+		arr.add(obj1);
+		test2.setObjects(arr);
+		arr = new ArrayList<>();
+		assertTrue("Shoud be empty", arr.isEmpty());
+		arr = test2.getObjects();
+		assertTrue("Shoud not be empty", !arr.isEmpty());
+	}
+	
+	@Test
+	public void testHolonObject() {
+		
+		HolonObject test1 = new HolonObject("Test1");
+		HolonObject test2 = new HolonObject("Test2");
+		HolonObject test3 = new HolonObject(test1);
+		HolonElement ele = new HolonElement("Element", 1, 10);
+		
+		ArrayList<HolonElement> arr = new ArrayList<>();
+		
+		assertTrue("Should be Empty", test1.getElements().isEmpty());
+		test1.setElements(arr);
+		assertTrue("Should be Empty", test1.getElements().isEmpty());
+		arr.add(ele);
+		arr.add(ele);
+		assertTrue("Should be Empty", test2.getElements().isEmpty());
+		assertTrue("Current Energy not corrent", test2.getCurrentEnergy() == 0);
+		test2.setElements(arr);
+		assertTrue("Should not be Empty", !test2.getElements().isEmpty());
+		assertTrue("Current Energy not corrent", test2.getCurrentEnergy() == 20);
+		assertTrue("Current Energy not corrent", test2.getCurrentEnergyAtTimeStep(20) == 20);
+		String str = test2.toStringElements();
+		assertTrue("String not corrent", str.equals("Element, Element"));
+		test2.deleteElement(0);
+		assertTrue("Current Energy not corrent", test2.getCurrentEnergy() == 10);
+		
+		assertTrue("Should be Empty", test3.getElements().isEmpty());
+		test3.setElements(test2.copyElements(test2.getElements()));
+		assertTrue("Should be Empty", !test3.getElements().isEmpty());
+		assertTrue("Should be state 0", test3.getState() == 0);
+		test3.setState(1);
+		
+	}
+	
 	
 }

+ 44 - 0
src/tests/praktikumHolonsTestGlobalController.java

@@ -1,5 +1,49 @@
 package tests;
 
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+
+import ui.controller.GlobalController;
+import ui.model.Model;
+
 public class praktikumHolonsTestGlobalController {
 
+	protected Model model;
+	protected GlobalController controller;
+
+	
+	@Before
+	public void setUp() {
+		model = new Model();
+		controller = new GlobalController(model);
+
+	}
+	
+	@Test
+	public void testGlobalControls() {
+		int prevScale = controller.getScale();
+		int prevScaleDiv2 = controller.getScaleDiv2();
+		int prevNumberSav = controller.getNumbersOfSaves();
+		boolean sim = model.getIsSimulation();
+		int timer = model.getTimerSpeed();
+		int it = model.getCurIteration();
+		
+		controller.setScale(100);
+		controller.setNumberOfSaves(50);
+		controller.setIsSimulation(true);
+		controller.setTimerSpeed(2000);
+		controller.setCurIteration(10);
+		
+		assertTrue("Scale was not changed", controller.getScale() != prevScale);
+		assertTrue("ScaleDiv2 was not changed ", model.getScaleDiv2() != prevScaleDiv2);
+		assertTrue("Number of Saves was not changed", controller.getNumbersOfSaves() != prevNumberSav);
+		assertTrue("Simulation State was not Set", sim != model.getIsSimulation());
+		assertTrue("Timer speed was not changed", timer != model.getTimerSpeed());
+		assertTrue("Curr Iteration was not Set", it != model.getCurIteration());
+		
+	}
+
 }

+ 19 - 4
src/tests/praktikumHolonsTestLoadAndStoreController.java

@@ -2,20 +2,24 @@ package tests;
 
 import java.awt.Point;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.LinkedList;
 
 import org.junit.Before;
 import org.junit.Test;
+import java.lang.Error;
 
 import com.sun.security.auth.UnixNumericGroupPrincipal;
 
 import classes.Category;
 import classes.CpsEdge;
+import classes.CpsNode;
 import classes.CpsObject;
 import classes.HolonElement;
 import classes.HolonObject;
+import classes.HolonSwitch;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -106,6 +110,10 @@ public class praktikumHolonsTestLoadAndStoreController {
 					&& model.getObjectsOnCanvas().get(i - 1).getObjName().equals("House"));
 		}
 
+		HolonSwitch sw = new HolonSwitch(mp.searchCatObj(mp.searchCat("Component"), "Switch"));
+		sw.setPosition(77, 88);
+		cvs.addNewObject(sw);
+
 		try {
 			File sav = new File(path + "TestSavBasic.json");
 			storeController.writeSaveFile(sav.getAbsolutePath());
@@ -146,6 +154,7 @@ public class praktikumHolonsTestLoadAndStoreController {
 			}
 		}
 
+
 		try {
 			File sav = new File(path + "TestSavAdvanced.json");
 			storeController.writeSaveFile(sav.getAbsolutePath());
@@ -207,9 +216,9 @@ public class praktikumHolonsTestLoadAndStoreController {
 			assertTrue("Objects on Canvas is not 0", model.getObjectsOnCanvas().size() == 0);
 			assertTrue("Canvas File was not found", new File(path + "TestCanvasBasic.json").exists());
 			loadController.readJSON(path + "TestCanvasBasic.json");
-			assertTrue("NUmber of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 10);
+			assertTrue("NUmber of Objects on Canvas does not match", model.getObjectsOnCanvas().size() == 11);
 			for (CpsObject obj : model.getObjectsOnCanvas()) {
-				assertTrue("Not instance of HolonObject", obj instanceof HolonObject);
+				assertTrue("Not instance of HolonObject", obj instanceof HolonObject || obj instanceof HolonSwitch);
 			}
 			
 			assertTrue("NUmber of Categories not match", model.getCategories().size() == 3);
@@ -242,18 +251,24 @@ public class praktikumHolonsTestLoadAndStoreController {
 			assertTrue("Objects on Canvas is not 0", model.getObjectsOnCanvas().size() == 0);
 			assertTrue("Save File was not found", new File(path + "TestSavAdvanced.json").exists());
 			loadController.readJSON(path + "TestSavAdvanced.json");
-			assertTrue("Objects on Canvas is not 0", model.getObjectsOnCanvas().size() == 100);
+			assertTrue("Objects on Canvas is not 100", model.getObjectsOnCanvas().size() == 100);
 			
 			int n = model.getObjectsOnCanvas().size();
 			assertTrue("Number of Edges does not Match", model.getEdgesOnCanvas().size() == (n * (n - 1)) / 2);
 			assertTrue("Element has no UnitGraph", !mp.searchEle((HolonObject)model.getObjectsOnCanvas().get(77), "Fridge").getGraphPoints().isEmpty());
 			assertTrue("Points in UnitGraph does not Match", mp.searchEle((HolonObject)model.getObjectsOnCanvas().get(77), "Fridge").getGraphPoints().size() == 3);
-
+			
 		} catch (IOException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 	}
+	
+	@Test (expected=FileNotFoundException.class)
+	public void testLoadException() throws IOException {
+		assertTrue("Save File was not found", !new File(path + "TestSavDummy.json").exists());
+		loadController.readJSON(path + "TestSavDummy.json");
+	}
 
 	/**
 	 * 

+ 0 - 5
src/tests/praktikumHolonsTestMultiPurposeController.java

@@ -1,5 +0,0 @@
-package tests;
-
-public class praktikumHolonsTestMultiPurposeController {
-
-}

+ 0 - 5
src/tests/praktikumHolonsTestStressAnalysis.java

@@ -1,5 +0,0 @@
-package tests;
-
-public class praktikumHolonsTestStressAnalysis {
-
-}

+ 2 - 2
src/tests/praktikumHolonsTestSuite.java

@@ -14,9 +14,9 @@ public class praktikumHolonsTestSuite {
 		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestCanvasController.class));
 		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestObjectController.class));
 		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestLoadAndStoreController.class));
-//		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestMultiPurposeController.class));
-//		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestGlobalController.class));
+		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestGlobalController.class));
 //		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestAutoSaveController.class));
+		suite.addTest(new JUnit4TestAdapter(praktikumHolonsTestClasses.class));
 		return suite;
 	}
 }

+ 1 - 0
src/ui/view/AddElementPopUp.java

@@ -132,6 +132,7 @@ public class AddElementPopUp extends JDialog {
 								float energy = Float.parseFloat(providedEnergy.getText().toString());
 								int elementAmount = Integer.parseInt(amount.getText().toString());
 								hl = new HolonElement(elementName.getText().toString(), elementAmount, energy);
+								
 								dispose();
 							} catch (NumberFormatException e) {
 								JOptionPane.showMessageDialog(new JFrame(),

+ 2 - 0
src/ui/view/AddObjectPopUp.java

@@ -183,6 +183,8 @@ public class AddObjectPopUp extends JDialog {
 					addElement.setActualCps(toEdit);
 					addElement.setVisible(true);
 					HolonElement hl = addElement.getElement();
+					hl.setSav(givenCategory);
+					hl.setObj(objectName.getText());
 					addElement(hl);
 				}
 			});