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