Browse Source

Adds testing structure, with tests for ImportController

Andreas T. Meyer-Berg 5 years ago
parent
commit
0e0a176e40

+ 2 - 1
.gitignore

@@ -115,4 +115,5 @@ gradle-app.setting
 ### Gradle Patch ###
 **/build/
 
-# End of https://www.gitignore.io/api/java,gradle,eclipse
+# End of https://www.gitignore.io/api/java,gradle,eclipse
+/MQTT_protocolSN.java

+ 4 - 0
build.gradle

@@ -26,6 +26,10 @@ jar {
     }
 }
 
+test {
+	ignoreFailures = true
+}
+
 //Runs the created Jar
 task runIt(dependsOn:jar) {
     doLast {

+ 7 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/control/ImportController.java

@@ -388,13 +388,19 @@ public class ImportController {
 	 *            File to be searched for the package path
 	 * @return PackagePath of the JavaFile, EmptyString, if no declaration was
 	 *         found, null on errors
-	 * @throws ClassImportException 
 	 */
 	public static String getJavaPackageName(File javaFile) {
+		/**
+		 * If javaFile null -> return null
+		 */
+		if(javaFile==null)
+			return null;
+		
 		/**
 		 * Package name
 		 */
 		String packageName = "";
+		
 		/**
 		 * Reader to read the java File
 		 */

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

@@ -0,0 +1,92 @@
+package de.tu_darmstadt.tk.shNetSimTests.control;
+import java.io.File;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.ClassImportException;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.ImportController;
+
+/**
+ * Tests Import Functionalities of the 
+ * 
+ *
+ * @author Andreas T. Meyer-Berg
+ */
+public class ClassImportTest {
+
+	String pathToRessources = "src/test/resources/";
+    @Test
+    public void javaPackageName() {
+        Assert.assertNull(ImportController.getJavaPackageName(null));
+    }
+    
+    @Test
+    public void javaPackageNameNull(){
+    	Assert.assertNull(null);
+    }
+    
+    @Test
+    public void javaPackageNameInvalid(){
+    	Assert.assertNull(null);
+    }
+    
+    @Test
+    public void compileFile(){
+    	Class<?> test = null;
+    	try {
+			test = ImportController.importJavaClass(new File(pathToRessources + "control/testCompilation/project1/MQTT_protocolProject1.java"));
+		} catch (ClassImportException e) {
+			e.printStackTrace();
+		}
+    	Assert.assertNotNull(test);
+    }
+    
+    @Test
+    public void compileFilePackage(){
+    	Class<?> test = null;
+    	try {
+			test = ImportController.importJavaClass(new File(pathToRessources + "control/testCompilation/packageTest/MQTT_protocolPackageTest.java"));
+		} catch (ClassImportException e) {
+			e.printStackTrace();
+		}
+    	Assert.assertNotNull(test);
+    }
+    
+    @Test
+    public void compileFileDeepPackage(){
+    	Class<?> test = null;
+    	try {
+			test = ImportController.importJavaClass(new File(pathToRessources + "control/testCompilation/packageTest/deepPackage/reallyDeepPackage/MQTT_protocolDeepPackageTest.java"));
+		} catch (ClassImportException e) {
+			e.printStackTrace();
+		}
+    	Assert.assertNotNull(test);
+    }
+    
+    @Test
+    public void accessFile(){
+    	File f = new File(pathToRessources+"control/testCompilation/project1/MQTT_protocolProject1.java");
+    	Assert.assertTrue(f.exists());
+    }
+	
+	public static void main(String[] args) {
+		testFileCompilation("testCompilation/project1/MQTT_protocolProject1.java");
+		testFileCompilation("testCompilation/packageTest/MQTT_protocolPackageTest.java");
+		testFileCompilation("testCompilation/packageTest/deepPackage/reallyDeepPackage/MQTT_protocolDeepPackageTest.java");
+	}
+	
+	private static void testFileCompilation(String pathToFile){
+		System.out.println("Test: " + pathToFile);
+		try {
+			Class<?> c  = ImportController.importJavaClass(new File(pathToFile));
+			if(c!=null)
+				System.out.println("Import success: "+c.getSimpleName());
+			else
+				System.out.println("Import null");
+		} catch (Exception e) {
+			System.out.println("Import failed: "+e.toString());
+		}
+		System.out.println();
+	}
+}

+ 6 - 0
src/test/java/de/tu_darmstadt/tk/shNetSimTests/control/package-info.java

@@ -0,0 +1,6 @@
+/**
+ * Test Cases for the SmartHomeNetworkSim control package 
+ *
+ * @author Andreas T. Meyer-Berg
+ */
+package de.tu_darmstadt.tk.shNetSimTests.control;

+ 6 - 0
src/test/java/de/tu_darmstadt/tk/shNetSimTests/package-info.java

@@ -0,0 +1,6 @@
+/**
+ * Test Cases for the SmartHomeNetworkSim 
+ *
+ * @author Andreas T. Meyer-Berg
+ */
+package de.tu_darmstadt.tk.shNetSimTests;

+ 0 - 0
testCompilation/packageTest/MQTT_protocolPackageTest.java → src/test/resources/control/testCompilation/packageTest/MQTT_protocolPackageTest.java


+ 0 - 0
testCompilation/packageTest/deepPackage/reallyDeepPackage/MQTT_protocolDeepPackageTest.java → src/test/resources/control/testCompilation/packageTest/deepPackage/reallyDeepPackage/MQTT_protocolDeepPackageTest.java


+ 0 - 0
testCompilation/project1/MQTT_protocolProject1.java → src/test/resources/control/testCompilation/project1/MQTT_protocolProject1.java