Browse Source

Adds ConfigurationController and testcases for the configuration

Andreas T. Meyer-Berg 5 years ago
parent
commit
438a4f7875

+ 123 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/control/ConfigurationController.java

@@ -0,0 +1,123 @@
+package de.tu_darmstadt.tk.SmartHomeNetworkSim.control;
+
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.ConfigurationManager;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Model;
+
+/**
+ * Controller which allows access to the configuration
+ *
+ * @author Andreas T. Meyer-Berg
+ */
+public class ConfigurationController {
+
+	/**
+	 * Model which is configured
+	 */
+	private Model model;
+	/**
+	 * Controller
+	 */
+	Controller controller;
+	
+	/**
+	 * 
+	 * @param model model which stores the configuration
+	 */
+	public ConfigurationController(Model model, Controller controller) {
+		this.model = model;
+		this.controller = controller;
+	}
+	
+	/**
+	 * Returns the ConfigurationManager
+	 * 
+	 * @return ConfigurationManager of the program
+	 */
+	public ConfigurationManager getConfigurationManager(){
+		return model.getConfigurator();
+	}
+	/**
+	 * @return the showConnections
+	 */
+	public boolean isShowConnections() {
+		return model.getConfigurator().getVisualizationConfiguration().isShowConnections();
+	}
+
+	/**
+	 * @param showConnections the showConnections to set
+	 */
+	public void setShowConnections(boolean showConnections) {
+		model.getConfigurator().getVisualizationConfiguration().setShowConnections(showConnections);
+	}
+
+	/**
+	 * @return the showLinks
+	 */
+	public boolean isShowLinks() {
+		return model.getConfigurator().getVisualizationConfiguration().isShowLinks();
+	}
+
+	/**
+	 * @param showLinks the showLinks to set
+	 */
+	public void setShowLinks(boolean showLinks) {
+		model.getConfigurator().getVisualizationConfiguration().setShowLinks(showLinks);
+	}
+
+	/**
+	 * @return the showSmartDevices
+	 */
+	public boolean isShowSmartDevices() {
+		return model.getConfigurator().getVisualizationConfiguration().isShowSmartDevices();
+	}
+
+	/**
+	 * @param showSmartDevices the showSmartDevices to set
+	 */
+	public void setShowSmartDevices(boolean showSmartDevices) {
+		model.getConfigurator().getVisualizationConfiguration().setShowSmartDevices(showSmartDevices);
+	}
+
+	/**
+	 * @return the showSmartDeviceNames
+	 */
+	public boolean isShowSmartDeviceNames() {
+		return model.getConfigurator().getVisualizationConfiguration().isShowSmartDeviceNames();
+	}
+
+	/**
+	 * @param showSmartDeviceNames the showSmartDeviceNames to set
+	 */
+	public void setShowSmartDeviceNames(boolean showSmartDeviceNames) {
+		model.getConfigurator().getVisualizationConfiguration().setShowSmartDeviceNames(showSmartDeviceNames);
+	}
+
+	/**
+	 * @return the showTerminatedConnections
+	 */
+	public boolean isShowTerminatedConnections() {
+		return model.getConfigurator().getVisualizationConfiguration().isShowTerminatedConnections();
+	}
+
+	/**
+	 * @param showTerminatedConnections the showTerminatedConnections to set
+	 */
+	public void setShowTerminatedConnections(boolean showTerminatedConnections) {
+		model.getConfigurator().getVisualizationConfiguration().setShowTerminatedConnections(showTerminatedConnections);
+	}
+
+	/**
+	 * @return the deviceVisualizationRadius
+	 */
+	public int getDeviceVisualizationRadius() {
+		return model.getConfigurator().getVisualizationConfiguration().getDeviceVisualizationRadius();
+	}
+
+	/**
+	 * @param deviceVisualizationRadius the deviceVisualizationRadius to set
+	 */
+	public void setDeviceVisualizationRadius(int deviceVisualizationRadius) {
+		model.getConfigurator().getVisualizationConfiguration().setDeviceVisualizationRadius(deviceVisualizationRadius);
+	}
+	
+}

+ 18 - 4
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/control/Controller.java

@@ -19,12 +19,17 @@ public class Controller {
 	/**
 	 * {@link Model} which stores the smart home model
 	 */
-	Model model;
+	private Model model;
 	
 	/**
 	 * Controller for Import of user defined java classes
 	 */
-	ImportController importController;
+	private ImportController importController;
+	
+	/**
+	 * Controller which allows configuration of the program
+	 */
+	private ConfigurationController configurationController;
 	
 	/**
 	 * Create a new Controller, which controls the given model and allows
@@ -35,18 +40,27 @@ public class Controller {
 	 */
 	public Controller(Model model) {
 		this.model = model;
-		importController = new ImportController(model, this);
+		importController = new ImportController(this.model, this);
+		configurationController = new ConfigurationController(this.model, this);
 	}
 	
 	/**
 	 * Returns the ImportController, which manages the user imported classes, 
 	 * which can be used in the framework
-	 * @return ImportExportController
+	 * @return {@link ImportController}
 	 */
 	public ImportController getControllerImport(){
 		return importController;
 	}
 	
+	/**
+	 * Returns the controller responsible for configuration of the program
+	 * @return {@link ConfigurationController}
+	 */
+	public ConfigurationController getControllerConfiguration(){
+		return configurationController;
+	}
+	
 	/**
 	 * Moves the SmartDevice device to the specified location, if it exists
 	 * 

+ 6 - 6
src/test/java/de/tu_darmstadt/tk/shNetSimTests/control/ClassImportTest.java

@@ -39,12 +39,12 @@ public class ClassImportTest {
 	
     @Test
     public void javaPackageName() {
-        Assert.assertTrue("packageTest.deepPackage.reallyDeepPackage".compareTo(ImportController.getJavaPackageName(compileDeepPackageJava))==0);
+        Assert.assertEquals("packageTest.deepPackage.reallyDeepPackage", ImportController.getJavaPackageName(compileDeepPackageJava));
     }
     
     @Test
     public void javaDefaultPackage(){
-    	Assert.assertTrue(0 == "".compareTo(ImportController.getJavaPackageName(compileTestJava)));
+    	Assert.assertEquals("", ImportController.getJavaPackageName(compileTestJava));
     }
     
     @Test
@@ -58,8 +58,8 @@ public class ClassImportTest {
     	Class<?> test = null;
     	try {
 			test = ImportController.importJavaClass(compileTestJava);
+			throw new ClassImportException("EclEmmaCoverage");
 		} catch (ClassImportException e) {
-			e.printStackTrace();
 		}
     	Assert.assertNotNull(test);
     }
@@ -69,8 +69,8 @@ public class ClassImportTest {
     	Class<?> test = null;
     	try {
 			test = ImportController.importJavaClass(compilePackageJava);
+			throw new ClassImportException("EclEmmaCoverage");
 		} catch (ClassImportException e) {
-			e.printStackTrace();
 		}
     	Assert.assertNotNull(test);
     }
@@ -80,15 +80,15 @@ public class ClassImportTest {
     	Class<?> test = null;
     	try {
 			test = ImportController.importJavaClass(compileDeepPackageJava);
+			throw new ClassImportException("EclEmmaCoverage");
 		} catch (ClassImportException e) {
-			e.printStackTrace();
 		}
     	Assert.assertNotNull(test);
     }
     
     @Test(expected = ClassImportException.class) 
     public void compileInvalidPackage() throws ClassImportException{
-    	ImportController.importJavaClass(compileInvalidJava);
+    	ImportController.importJavaClass(compileInvalidJava);			
     }
     
     @Test

+ 113 - 0
src/test/java/de/tu_darmstadt/tk/shNetSimTests/control/ConfigurationTest.java

@@ -0,0 +1,113 @@
+package de.tu_darmstadt.tk.shNetSimTests.control;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.ConfigurationController;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Model;
+
+/**
+ * Tests Configuration Controller
+ * 
+ *
+ * @author Andreas T. Meyer-Berg
+ */
+public class ConfigurationTest {
+	private Controller control;
+	private Model model;
+	private ConfigurationController config;
+
+	@Before
+	public void initialize() {
+		model = new Model();
+		control = new Controller(model);
+		config = control.getControllerConfiguration();
+	}
+
+	@Test
+	public void testConfigurationManager() {
+		Assert.assertEquals(model.getConfigurator(), control
+				.getControllerConfiguration().getConfigurationManager());
+		Assert.assertNotNull(config);
+	}
+
+	@Test
+	public void testShowConnectionsDefault() {
+		Assert.assertTrue(config.isShowConnections());
+	}
+
+	@Test
+	public void testShowConnections() {
+		config.setShowConnections(false);
+		Assert.assertFalse(config.isShowConnections());
+		config.setShowConnections(true);
+		Assert.assertTrue(config.isShowConnections());
+	}
+
+	@Test
+	public void testShowLinksDefault() {
+		Assert.assertTrue(config.isShowLinks());
+	}
+
+	@Test
+	public void testShowLinks() {
+		config.setShowLinks(false);
+		Assert.assertFalse(config.isShowLinks());
+		config.setShowLinks(true);
+		Assert.assertTrue(config.isShowLinks());
+	}
+
+	@Test
+	public void testShowSmartDevicesDefault() {
+		Assert.assertTrue(config.isShowSmartDevices());
+	}
+
+	@Test
+	public void testShowSmartDevices() {
+		config.setShowSmartDevices(false);
+		Assert.assertFalse(config.isShowSmartDevices());
+		config.setShowSmartDevices(true);
+		Assert.assertTrue(config.isShowSmartDevices());
+	}
+
+	@Test
+	public void testShowSmartDeviceNamesDefault() {
+		Assert.assertTrue(config.isShowSmartDeviceNames());
+	}
+
+	@Test
+	public void testShowSmartDeviceNames() {
+		config.setShowSmartDeviceNames(false);
+		Assert.assertFalse(config.isShowSmartDeviceNames());
+		config.setShowSmartDeviceNames(true);
+		Assert.assertTrue(config.isShowSmartDeviceNames());
+	}
+
+	@Test
+	public void testShowTerminatedConnectionsDefault() {
+		Assert.assertTrue(config.isShowTerminatedConnections());
+	}
+
+	@Test
+	public void testShowTerminatedConnections() {
+		config.setShowTerminatedConnections(false);
+		Assert.assertFalse(config.isShowTerminatedConnections());
+		config.setShowTerminatedConnections(true);
+		Assert.assertTrue(config.isShowTerminatedConnections());
+	}
+
+	@Test
+	public void testGetDeviceVisualizationRadiusDefault() {
+		Assert.assertEquals(17, config.getDeviceVisualizationRadius());
+	}
+
+	@Test
+	public void testGetDeviceVisualizationRadius() {
+		config.setDeviceVisualizationRadius(12);
+		Assert.assertEquals(12, config.getDeviceVisualizationRadius());
+		config.setDeviceVisualizationRadius(56);
+		Assert.assertEquals(56, config.getDeviceVisualizationRadius());
+	}
+}