diff --git a/TestSmellDetector.iml b/TestSmellDetector.iml
deleted file mode 100644
index 3735e2c..0000000
--- a/TestSmellDetector.iml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index af5379a..7b553fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
edu.rit.se.testsmells
TestSmellDetector
- 0.1
+ 0.2
diff --git a/src/main/java/edu/rit/se/testsmells/AbstractSmell.java b/src/main/java/edu/rit/se/testsmells/AbstractSmell.java
new file mode 100644
index 0000000..49f6384
--- /dev/null
+++ b/src/main/java/edu/rit/se/testsmells/AbstractSmell.java
@@ -0,0 +1,34 @@
+package edu.rit.se.testsmells;
+
+import com.github.javaparser.ast.CompilationUnit;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class AbstractSmell {
+
+ protected List smellyElementList;
+
+ public AbstractSmell() {
+ smellyElementList = new ArrayList<>();
+ }
+
+ /**
+ * Returns true if any of the elements has a smell
+ */
+ public boolean getHasSmell() {
+ return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
+ }
+
+ /**
+ * Returns the set of analyzed elements (i.e. test methods)
+ */
+ public List getSmellyElements() {
+ return smellyElementList;
+ }
+
+ public abstract String getSmellName();
+
+ public abstract void runAnalysis(CompilationUnit testFileCompilationUnit,CompilationUnit productionFileCompilationUnit, String testFileName, String productionFileName) throws FileNotFoundException;
+}
diff --git a/src/main/java/Main.java b/src/main/java/edu/rit/se/testsmells/Main.java
similarity index 96%
rename from src/main/java/Main.java
rename to src/main/java/edu/rit/se/testsmells/Main.java
index 9e691b8..4970086 100644
--- a/src/main/java/Main.java
+++ b/src/main/java/edu/rit/se/testsmells/Main.java
@@ -1,7 +1,4 @@
-import testsmell.AbstractSmell;
-import testsmell.ResultsWriter;
-import testsmell.TestFile;
-import testsmell.TestSmellDetector;
+package edu.rit.se.testsmells;
import java.io.BufferedReader;
import java.io.File;
diff --git a/src/main/java/testsmell/ResultsWriter.java b/src/main/java/edu/rit/se/testsmells/ResultsWriter.java
similarity index 98%
rename from src/main/java/testsmell/ResultsWriter.java
rename to src/main/java/edu/rit/se/testsmells/ResultsWriter.java
index e980397..6dcd8da 100644
--- a/src/main/java/testsmell/ResultsWriter.java
+++ b/src/main/java/edu/rit/se/testsmells/ResultsWriter.java
@@ -1,4 +1,4 @@
-package testsmell;
+package edu.rit.se.testsmells;
import java.io.FileWriter;
import java.io.IOException;
diff --git a/src/main/java/testsmell/SmellyElement.java b/src/main/java/edu/rit/se/testsmells/SmellyElement.java
similarity index 86%
rename from src/main/java/testsmell/SmellyElement.java
rename to src/main/java/edu/rit/se/testsmells/SmellyElement.java
index e56ebe6..04b9706 100644
--- a/src/main/java/testsmell/SmellyElement.java
+++ b/src/main/java/edu/rit/se/testsmells/SmellyElement.java
@@ -1,4 +1,4 @@
-package testsmell;
+package edu.rit.se.testsmells;
import java.util.Map;
diff --git a/src/main/java/testsmell/TestClass.java b/src/main/java/edu/rit/se/testsmells/TestClass.java
similarity index 96%
rename from src/main/java/testsmell/TestClass.java
rename to src/main/java/edu/rit/se/testsmells/TestClass.java
index df55952..708589e 100644
--- a/src/main/java/testsmell/TestClass.java
+++ b/src/main/java/edu/rit/se/testsmells/TestClass.java
@@ -1,4 +1,4 @@
-package testsmell;
+package edu.rit.se.testsmells;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/testsmell/TestFile.java b/src/main/java/edu/rit/se/testsmells/TestFile.java
similarity index 98%
rename from src/main/java/testsmell/TestFile.java
rename to src/main/java/edu/rit/se/testsmells/TestFile.java
index 90f8d03..cc5882a 100644
--- a/src/main/java/testsmell/TestFile.java
+++ b/src/main/java/edu/rit/se/testsmells/TestFile.java
@@ -1,4 +1,4 @@
-package testsmell;
+package edu.rit.se.testsmells;
import org.apache.commons.lang3.StringUtils;
diff --git a/src/main/java/testsmell/TestMethod.java b/src/main/java/edu/rit/se/testsmells/TestMethod.java
similarity index 96%
rename from src/main/java/testsmell/TestMethod.java
rename to src/main/java/edu/rit/se/testsmells/TestMethod.java
index 6074b55..cb4526f 100644
--- a/src/main/java/testsmell/TestMethod.java
+++ b/src/main/java/edu/rit/se/testsmells/TestMethod.java
@@ -1,4 +1,4 @@
-package testsmell;
+package edu.rit.se.testsmells;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/testsmell/TestSmellDetector.java b/src/main/java/edu/rit/se/testsmells/TestSmellDetector.java
similarity index 98%
rename from src/main/java/testsmell/TestSmellDetector.java
rename to src/main/java/edu/rit/se/testsmells/TestSmellDetector.java
index 6e54184..5a29282 100644
--- a/src/main/java/testsmell/TestSmellDetector.java
+++ b/src/main/java/edu/rit/se/testsmells/TestSmellDetector.java
@@ -1,9 +1,9 @@
-package testsmell;
+package edu.rit.se.testsmells;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import org.apache.commons.lang3.StringUtils;
-import testsmell.smell.*;
+import edu.rit.se.testsmells.smell.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
diff --git a/src/main/java/testsmell/Util.java b/src/main/java/edu/rit/se/testsmells/Util.java
similarity index 98%
rename from src/main/java/testsmell/Util.java
rename to src/main/java/edu/rit/se/testsmells/Util.java
index b1830c7..159b4c9 100644
--- a/src/main/java/testsmell/Util.java
+++ b/src/main/java/edu/rit/se/testsmells/Util.java
@@ -1,4 +1,4 @@
-package testsmell;
+package edu.rit.se.testsmells;
import com.github.javaparser.ast.Modifier;
import com.github.javaparser.ast.body.MethodDeclaration;
diff --git a/src/main/java/testsmell/smell/AssertionRoulette.java b/src/main/java/edu/rit/se/testsmells/smell/AssertionRoulette.java
similarity index 86%
rename from src/main/java/testsmell/smell/AssertionRoulette.java
rename to src/main/java/edu/rit/se/testsmells/smell/AssertionRoulette.java
index d4ddb92..745a0d3 100644
--- a/src/main/java/testsmell/smell/AssertionRoulette.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/AssertionRoulette.java
@@ -1,17 +1,14 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/**
* "Guess what's wrong?" This smell comes from having a number of assertions in a test method that have no explanation.
@@ -20,12 +17,6 @@
*/
public class AssertionRoulette extends AbstractSmell {
- private List smellyElementList;
-
- public AssertionRoulette() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Assertion Roulette' smell
*/
@@ -34,14 +25,6 @@ public String getSmellName() {
return "Assertion Roulette";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods for multiple assert statements without an explanation/message
*/
@@ -52,15 +35,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int assertNoMessageCount = 0;
diff --git a/src/main/java/testsmell/smell/ConditionalTestLogic.java b/src/main/java/edu/rit/se/testsmells/smell/ConditionalTestLogic.java
similarity index 84%
rename from src/main/java/testsmell/smell/ConditionalTestLogic.java
rename to src/main/java/edu/rit/se/testsmells/smell/ConditionalTestLogic.java
index 1279ac5..2abf11c 100644
--- a/src/main/java/testsmell/smell/ConditionalTestLogic.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/ConditionalTestLogic.java
@@ -1,28 +1,20 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.ConditionalExpr;
import com.github.javaparser.ast.stmt.*;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
This class check a test method for the existence of loops and conditional statements in the methods body
*/
public class ConditionalTestLogic extends AbstractSmell {
- private List smellyElementList;
-
- public ConditionalTestLogic() {
- smellyElementList = new ArrayList<>();
- }
/**
* Checks of 'Conditional Test Logic' smell
@@ -32,14 +24,6 @@ public String getSmellName() {
return "Conditional Test Logic";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that use conditional statements
*/
@@ -50,15 +34,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int conditionCount, ifCount, switchCount, forCount, foreachCount, whileCount = 0;
diff --git a/src/main/java/testsmell/smell/ConstructorInitialization.java b/src/main/java/edu/rit/se/testsmells/smell/ConstructorInitialization.java
similarity index 77%
rename from src/main/java/testsmell/smell/ConstructorInitialization.java
rename to src/main/java/edu/rit/se/testsmells/smell/ConstructorInitialization.java
index c964fc9..6805a5a 100644
--- a/src/main/java/testsmell/smell/ConstructorInitialization.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/ConstructorInitialization.java
@@ -1,17 +1,14 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.ConstructorDeclaration;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestClass;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestClass;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
@@ -20,13 +17,8 @@ This class checks if the code file contains a Constructor. Ideally, the test sui
*/
public class ConstructorInitialization extends AbstractSmell {
- private List smellyElementList;
private String testFileName;
- public ConstructorInitialization() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Constructor Initialization' smell
*/
@@ -35,14 +27,6 @@ public String getSmellName() {
return "Constructor Initialization";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for Constructor Initialization smell
*/
@@ -54,15 +38,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit,CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
-
private class ClassVisitor extends VoidVisitorAdapter {
TestClass testClass;
boolean constructorAllowed=false;
diff --git a/src/main/java/testsmell/smell/DefaultTest.java b/src/main/java/edu/rit/se/testsmells/smell/DefaultTest.java
similarity index 69%
rename from src/main/java/testsmell/smell/DefaultTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/DefaultTest.java
index e630946..529d106 100644
--- a/src/main/java/testsmell/smell/DefaultTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/DefaultTest.java
@@ -1,15 +1,12 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestClass;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestClass;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
By default Android Studio creates default test classes when a project is created. These classes are meant to serve as an example for developers when wring unit tests
@@ -17,12 +14,6 @@
*/
public class DefaultTest extends AbstractSmell {
- private List smellyElementList;
-
- public DefaultTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Default Test' smell
*/
@@ -31,14 +22,6 @@ public String getSmellName() {
return "Default Test";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
@Override
public void runAnalysis(CompilationUnit testFileCompilationUnit,CompilationUnit productionFileCompilationUnit, String testFileName, String productionFileName) throws FileNotFoundException {
DefaultTest.ClassVisitor classVisitor;
@@ -46,14 +29,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit,CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
TestClass testClass;
diff --git a/src/main/java/testsmell/smell/DependentTest.java b/src/main/java/edu/rit/se/testsmells/smell/DependentTest.java
similarity index 88%
rename from src/main/java/testsmell/smell/DependentTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/DependentTest.java
index 38fb2bd..9a0e18b 100644
--- a/src/main/java/testsmell/smell/DependentTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/DependentTest.java
@@ -1,12 +1,11 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.ArrayList;
@@ -14,12 +13,10 @@
public class DependentTest extends AbstractSmell {
- private List smellyElementList;
private List testMethods;
-
public DependentTest() {
- smellyElementList = new ArrayList<>();
+ super();
testMethods = new ArrayList<>();
}
@@ -50,7 +47,7 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
for (TestMethod testMethod : testMethods) {
if (testMethod.getCalledMethods().stream().anyMatch(x -> x.getName().equals(testMethods.stream().map(z -> z.getMethodDeclaration().getNameAsString())))){
- smellyElementList.add(new testsmell.TestMethod(testMethod.getMethodDeclaration().getNameAsString()));
+ smellyElementList.add(new edu.rit.se.testsmells.TestMethod(testMethod.getMethodDeclaration().getNameAsString()));
}
}
@@ -64,14 +61,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
}*/
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
List calledMethods;
diff --git a/src/main/java/testsmell/smell/DuplicateAssert.java b/src/main/java/edu/rit/se/testsmells/smell/DuplicateAssert.java
similarity index 87%
rename from src/main/java/testsmell/smell/DuplicateAssert.java
rename to src/main/java/edu/rit/se/testsmells/smell/DuplicateAssert.java
index fcc6037..a23db41 100644
--- a/src/main/java/testsmell/smell/DuplicateAssert.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/DuplicateAssert.java
@@ -1,25 +1,18 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.*;
public class DuplicateAssert extends AbstractSmell {
- private List smellyElementList;
-
- public DuplicateAssert() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Duplicate Assert' smell
*/
@@ -28,14 +21,6 @@ public String getSmellName() {
return "Duplicate Assert";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that have multiple assert statements with the same explanation message
*/
@@ -46,15 +31,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
TestMethod testMethod;
diff --git a/src/main/java/testsmell/smell/EagerTest.java b/src/main/java/edu/rit/se/testsmells/smell/EagerTest.java
similarity index 97%
rename from src/main/java/testsmell/smell/EagerTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/EagerTest.java
index 2683313..ed5925f 100644
--- a/src/main/java/testsmell/smell/EagerTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/EagerTest.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Modifier;
@@ -8,9 +8,11 @@
import com.github.javaparser.ast.body.VariableDeclarator;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.expr.NameExpr;
-import com.github.javaparser.ast.expr.VariableDeclarationExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.*;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.SmellyElement;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.ArrayList;
@@ -22,12 +24,11 @@ public class EagerTest extends AbstractSmell {
private static final String TEST_FILE = "Test";
private static final String PRODUCTION_FILE = "Production";
private String productionClassName;
- private List smellyElementList;
private List productionMethods;
public EagerTest() {
+ super();
productionMethods = new ArrayList<>();
- smellyElementList = new ArrayList<>();
}
/**
diff --git a/src/main/java/testsmell/smell/EmptyTest.java b/src/main/java/edu/rit/se/testsmells/smell/EmptyTest.java
similarity index 74%
rename from src/main/java/testsmell/smell/EmptyTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/EmptyTest.java
index 4bc18ec..63304b6 100644
--- a/src/main/java/testsmell/smell/EmptyTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/EmptyTest.java
@@ -1,16 +1,13 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/**
* This class checks if a test method is empty (i.e. the method does not contain statements in its body)
@@ -18,12 +15,6 @@
*/
public class EmptyTest extends AbstractSmell {
- private List smellyElementList;
-
- public EmptyTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Empty Test' smell
*/
@@ -32,14 +23,6 @@ public String getSmellName() {
return "EmptyTest";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that are empty (i.e. no method body)
*/
@@ -50,14 +33,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
/**
* Visitor class
*/
diff --git a/src/main/java/testsmell/smell/ExceptionCatchingThrowing.java b/src/main/java/edu/rit/se/testsmells/smell/ExceptionCatchingThrowing.java
similarity index 84%
rename from src/main/java/testsmell/smell/ExceptionCatchingThrowing.java
rename to src/main/java/edu/rit/se/testsmells/smell/ExceptionCatchingThrowing.java
index 50cc5e0..baa5b08 100644
--- a/src/main/java/testsmell/smell/ExceptionCatchingThrowing.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/ExceptionCatchingThrowing.java
@@ -1,17 +1,16 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.stmt.CatchClause;
import com.github.javaparser.ast.stmt.ThrowStmt;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.SmellyElement;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
import java.util.List;
/*
@@ -20,12 +19,6 @@
*/
public class ExceptionCatchingThrowing extends AbstractSmell {
- private List smellyElementList;
-
- public ExceptionCatchingThrowing() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Exception Catching Throwing' smell
*/
@@ -34,14 +27,6 @@ public String getSmellName() {
return "Exception Catching Throwing";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that have exception handling
*/
diff --git a/src/main/java/testsmell/smell/GeneralFixture.java b/src/main/java/edu/rit/se/testsmells/smell/GeneralFixture.java
similarity index 94%
rename from src/main/java/testsmell/smell/GeneralFixture.java
rename to src/main/java/edu/rit/se/testsmells/smell/GeneralFixture.java
index 9d5ddf5..abe47e8 100644
--- a/src/main/java/testsmell/smell/GeneralFixture.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/GeneralFixture.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.NodeList;
@@ -11,24 +11,23 @@
import com.github.javaparser.ast.stmt.BlockStmt;
import com.github.javaparser.ast.stmt.ExpressionStmt;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.SmellyElement;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.*;
public class GeneralFixture extends AbstractSmell {
- private List smellyElementList;
- List methodList;
- MethodDeclaration setupMethod;
- List fieldList;
- List setupFields;
+ private List methodList;
+ private MethodDeclaration setupMethod;
+ private List fieldList;
+ private List setupFields;
public GeneralFixture() {
- smellyElementList = new ArrayList<>();
+ super();
methodList = new ArrayList<>();
fieldList = new ArrayList<>();
setupFields = new ArrayList<>();
diff --git a/src/main/java/testsmell/smell/IgnoredTest.java b/src/main/java/edu/rit/se/testsmells/smell/IgnoredTest.java
similarity index 78%
rename from src/main/java/testsmell/smell/IgnoredTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/IgnoredTest.java
index 275bdbd..d99e588 100644
--- a/src/main/java/testsmell/smell/IgnoredTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/IgnoredTest.java
@@ -1,27 +1,18 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Modifier;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestClass;
-import testsmell.TestMethod;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestClass;
+import edu.rit.se.testsmells.TestMethod;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
public class IgnoredTest extends AbstractSmell {
- private List smellyElementList;
-
- public IgnoredTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Ignored Test' smell
*/
@@ -30,14 +21,6 @@ public String getSmellName() {
return "IgnoredTest";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that contain Ignored test methods
*/
@@ -48,14 +31,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
/**
* Visitor class
*/
diff --git a/src/main/java/testsmell/smell/LazyTest.java b/src/main/java/edu/rit/se/testsmells/smell/LazyTest.java
similarity index 92%
rename from src/main/java/testsmell/smell/LazyTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/LazyTest.java
index 55efa39..5a414d6 100644
--- a/src/main/java/testsmell/smell/LazyTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/LazyTest.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Modifier;
@@ -8,12 +8,10 @@
import com.github.javaparser.ast.body.VariableDeclarator;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.expr.NameExpr;
-import com.github.javaparser.ast.expr.VariableDeclarationExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.ArrayList;
@@ -25,13 +23,12 @@ public class LazyTest extends AbstractSmell {
private static final String TEST_FILE = "Test";
private static final String PRODUCTION_FILE = "Production";
private String productionClassName;
- private List smellyElementList;
private List calledProductionMethods;
private List productionMethods;
public LazyTest() {
+ super();
productionMethods = new ArrayList<>();
- smellyElementList = new ArrayList<>();
calledProductionMethods = new ArrayList<>();
}
@@ -43,14 +40,6 @@ public String getSmellName() {
return "Lazy Test";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that exhibit the 'Lazy Test' smell
*/
@@ -82,14 +71,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
}
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class MethodUsage {
private String testMethod, productionMethod;
diff --git a/src/main/java/testsmell/smell/MagicNumberTest.java b/src/main/java/edu/rit/se/testsmells/smell/MagicNumberTest.java
similarity index 85%
rename from src/main/java/testsmell/smell/MagicNumberTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/MagicNumberTest.java
index 4643795..8318f33 100644
--- a/src/main/java/testsmell/smell/MagicNumberTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/MagicNumberTest.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
@@ -6,23 +6,14 @@
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.expr.ObjectCreationExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
public class MagicNumberTest extends AbstractSmell {
- private List smellyElementList;
-
- public MagicNumberTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'MagicNumberTest' smell
*/
@@ -31,14 +22,6 @@ public String getSmellName() {
return "Magic Number Test";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that have magic numbers in as parameters in the assert methods
*/
@@ -49,14 +32,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
TestMethod testMethod;
diff --git a/src/main/java/testsmell/smell/MysteryGuest.java b/src/main/java/edu/rit/se/testsmells/smell/MysteryGuest.java
similarity index 90%
rename from src/main/java/testsmell/smell/MysteryGuest.java
rename to src/main/java/edu/rit/se/testsmells/smell/MysteryGuest.java
index 6aa1dc8..12f63f0 100644
--- a/src/main/java/testsmell/smell/MysteryGuest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/MysteryGuest.java
@@ -1,14 +1,13 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.AnnotationExpr;
import com.github.javaparser.ast.expr.VariableDeclarationExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.ArrayList;
@@ -24,12 +23,6 @@
*/
public class MysteryGuest extends AbstractSmell {
- private List smellyElementList;
-
- public MysteryGuest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Mystery Guest' smell
*/
@@ -38,14 +31,6 @@ public String getSmellName() {
return "Mystery Guest";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that use external resources
*/
@@ -56,14 +41,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private List mysteryTypes = new ArrayList<>(
Arrays.asList(
diff --git a/src/main/java/testsmell/smell/PrintStatement.java b/src/main/java/edu/rit/se/testsmells/smell/PrintStatement.java
similarity index 83%
rename from src/main/java/testsmell/smell/PrintStatement.java
rename to src/main/java/edu/rit/se/testsmells/smell/PrintStatement.java
index 3bcf3d0..eab0e1c 100644
--- a/src/main/java/testsmell/smell/PrintStatement.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/PrintStatement.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
@@ -6,14 +6,11 @@
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.expr.NameExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
Test methods should not contain print statements as execution of unit tests is an automated process with little to no human intervention. Hence, print statements are redundant.
@@ -21,12 +18,6 @@ This code checks the body of each test method if System.out. print(), println(),
*/
public class PrintStatement extends AbstractSmell {
- private List smellyElementList;
-
- public PrintStatement() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Print Statement' smell
*/
@@ -35,14 +26,6 @@ public String getSmellName() {
return "Print Statement";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that print output to the console
*/
@@ -53,14 +36,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int printCount = 0;
diff --git a/src/main/java/testsmell/smell/RedundantAssertion.java b/src/main/java/edu/rit/se/testsmells/smell/RedundantAssertion.java
similarity index 87%
rename from src/main/java/testsmell/smell/RedundantAssertion.java
rename to src/main/java/edu/rit/se/testsmells/smell/RedundantAssertion.java
index 47431d5..a3f1e96 100644
--- a/src/main/java/testsmell/smell/RedundantAssertion.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/RedundantAssertion.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
@@ -6,26 +6,17 @@
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.expr.NullLiteralExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
If a test method contains an assert statement that explicitly returns a true or false, the method is marked as smelly
*/
public class RedundantAssertion extends AbstractSmell {
- private List smellyElementList;
-
- public RedundantAssertion() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Redundant Assertion' smell
*/
@@ -34,14 +25,6 @@ public String getSmellName() {
return "Redundant Assertion";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods for multiple assert statements
*/
@@ -52,14 +35,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int redundantCount = 0;
diff --git a/src/main/java/testsmell/smell/ResourceOptimism.java b/src/main/java/edu/rit/se/testsmells/smell/ResourceOptimism.java
similarity index 88%
rename from src/main/java/testsmell/smell/ResourceOptimism.java
rename to src/main/java/edu/rit/se/testsmells/smell/ResourceOptimism.java
index 26e5efb..5befc82 100644
--- a/src/main/java/testsmell/smell/ResourceOptimism.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/ResourceOptimism.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.FieldDeclaration;
@@ -6,10 +6,9 @@
import com.github.javaparser.ast.body.VariableDeclarator;
import com.github.javaparser.ast.expr.*;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.ArrayList;
@@ -17,12 +16,6 @@
public class ResourceOptimism extends AbstractSmell {
- private List smellyElementList;
-
- public ResourceOptimism() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Resource Optimism' smell
*/
@@ -31,14 +24,6 @@ public String getSmellName() {
return "Resource Optimism";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for the 'ResourceOptimism' smell
*/
@@ -49,15 +34,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int resourceOptimismCount = 0;
diff --git a/src/main/java/testsmell/smell/SensitiveEquality.java b/src/main/java/edu/rit/se/testsmells/smell/SensitiveEquality.java
similarity index 80%
rename from src/main/java/testsmell/smell/SensitiveEquality.java
rename to src/main/java/edu/rit/se/testsmells/smell/SensitiveEquality.java
index 726df94..e7b5f61 100644
--- a/src/main/java/testsmell/smell/SensitiveEquality.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/SensitiveEquality.java
@@ -1,27 +1,18 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.Expression;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
public class SensitiveEquality extends AbstractSmell {
- private List smellyElementList;
-
- public SensitiveEquality() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Sensitive Equality' smell
*/
@@ -30,14 +21,6 @@ public String getSmellName() {
return "Sensitive Equality";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods the 'Sensitive Equality' smell
*/
@@ -48,14 +31,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int sensitiveCount = 0;
diff --git a/src/main/java/testsmell/smell/SleepyTest.java b/src/main/java/edu/rit/se/testsmells/smell/SleepyTest.java
similarity index 80%
rename from src/main/java/testsmell/smell/SleepyTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/SleepyTest.java
index bd397b3..3aee422 100644
--- a/src/main/java/testsmell/smell/SleepyTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/SleepyTest.java
@@ -1,18 +1,15 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.expr.NameExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
Use of Thread.sleep() in test methods can possibly lead to unexpected results as the processing time of tasks on different devices/machines can be different. Use mock objects instead
@@ -20,12 +17,6 @@
*/
public class SleepyTest extends AbstractSmell {
- private List smellyElementList;
-
- public SleepyTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'SleepyTest' smell
*/
@@ -34,14 +25,6 @@ public String getSmellName() {
return "Sleepy Test";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that use Thread.sleep()
*/
@@ -52,14 +35,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
private int sleepCount = 0;
diff --git a/src/main/java/testsmell/smell/UnknownTest.java b/src/main/java/edu/rit/se/testsmells/smell/UnknownTest.java
similarity index 84%
rename from src/main/java/testsmell/smell/UnknownTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/UnknownTest.java
index 4c3d43c..1c9f2a7 100644
--- a/src/main/java/testsmell/smell/UnknownTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/UnknownTest.java
@@ -1,4 +1,4 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.NodeList;
@@ -7,10 +7,9 @@
import com.github.javaparser.ast.expr.MemberValuePair;
import com.github.javaparser.ast.expr.MethodCallExpr;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
import java.util.ArrayList;
@@ -19,12 +18,6 @@
public class UnknownTest extends AbstractSmell {
- private List smellyElementList;
-
- public UnknownTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Unknown Test' smell
*/
@@ -33,14 +26,6 @@ public String getSmellName() {
return "Unknown Test";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods that do not have assert statement or exceptions
*/
@@ -51,15 +36,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
-
private class ClassVisitor extends VoidVisitorAdapter {
private MethodDeclaration currentMethod = null;
TestMethod testMethod;
diff --git a/src/main/java/testsmell/smell/VerboseTest.java b/src/main/java/edu/rit/se/testsmells/smell/VerboseTest.java
similarity index 76%
rename from src/main/java/testsmell/smell/VerboseTest.java
rename to src/main/java/edu/rit/se/testsmells/smell/VerboseTest.java
index 28346a9..3af9034 100644
--- a/src/main/java/testsmell/smell/VerboseTest.java
+++ b/src/main/java/edu/rit/se/testsmells/smell/VerboseTest.java
@@ -1,28 +1,19 @@
-package testsmell.smell;
+package edu.rit.se.testsmells.smell;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
-import testsmell.AbstractSmell;
-import testsmell.SmellyElement;
-import testsmell.TestMethod;
-import testsmell.Util;
+import edu.rit.se.testsmells.AbstractSmell;
+import edu.rit.se.testsmells.TestMethod;
+import edu.rit.se.testsmells.Util;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
/*
If a test methods contains a statements that exceeds a certain threshold, the method is marked as smelly
*/
public class VerboseTest extends AbstractSmell {
- private List smellyElementList;
-
- public VerboseTest() {
- smellyElementList = new ArrayList<>();
- }
-
/**
* Checks of 'Verbose Test' smell
*/
@@ -31,14 +22,6 @@ public String getSmellName() {
return "Verbose Test";
}
- /**
- * Returns true if any of the elements has a smell
- */
- @Override
- public boolean getHasSmell() {
- return smellyElementList.stream().filter(x -> x.getHasSmell()).count() >= 1;
- }
-
/**
* Analyze the test file for test methods for the 'Verbose Test' smell
*/
@@ -49,14 +32,6 @@ public void runAnalysis(CompilationUnit testFileCompilationUnit, CompilationUnit
classVisitor.visit(testFileCompilationUnit, null);
}
- /**
- * Returns the set of analyzed elements (i.e. test methods)
- */
- @Override
- public List getSmellyElements() {
- return smellyElementList;
- }
-
private class ClassVisitor extends VoidVisitorAdapter {
final int MAX_STATEMENTS = 123;
private MethodDeclaration currentMethod = null;
diff --git a/src/main/java/testsmell/AbstractSmell.java b/src/main/java/testsmell/AbstractSmell.java
deleted file mode 100644
index 26d6f9e..0000000
--- a/src/main/java/testsmell/AbstractSmell.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package testsmell;
-
-import com.github.javaparser.ast.CompilationUnit;
-
-import java.io.FileNotFoundException;
-import java.util.List;
-
-public abstract class AbstractSmell {
- public abstract String getSmellName();
-
- public abstract boolean getHasSmell();
-
- public abstract void runAnalysis(CompilationUnit testFileCompilationUnit,CompilationUnit productionFileCompilationUnit, String testFileName, String productionFileName) throws FileNotFoundException;
-
- public abstract List getSmellyElements();
-}
diff --git a/src/resources/META-INF/MANIFEST.MF b/src/resources/META-INF/MANIFEST.MF
index 5ee19cb..57a66e9 100644
--- a/src/resources/META-INF/MANIFEST.MF
+++ b/src/resources/META-INF/MANIFEST.MF
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-Main-Class: Main
+Main-Class: edu.rit.se.testsmells.Main