diff --git a/.classpath b/.classpath
index 1aa47e8..b640121 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,17 @@
+
+
+
+
+
+
-
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index f890698..a698e59 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Aug 19 14:41:32 BRT 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/lib/cglib-nodep-2.2.2.jar b/lib/cglib-nodep-2.2.2.jar
new file mode 100644
index 0000000..02d81e8
Binary files /dev/null and b/lib/cglib-nodep-2.2.2.jar differ
diff --git a/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar
new file mode 100644
index 0000000..9d5fe16
Binary files /dev/null and b/lib/hamcrest-core-1.3.jar differ
diff --git a/lib/javassist-3.21.0-GA.jar b/lib/javassist-3.21.0-GA.jar
new file mode 100644
index 0000000..64549c4
Binary files /dev/null and b/lib/javassist-3.21.0-GA.jar differ
diff --git a/lib/mockito-core-1.10.19.jar b/lib/mockito-core-1.10.19.jar
new file mode 100644
index 0000000..d94e289
Binary files /dev/null and b/lib/mockito-core-1.10.19.jar differ
diff --git a/lib/objenesis-2.4.jar b/lib/objenesis-2.4.jar
new file mode 100644
index 0000000..f76ea51
Binary files /dev/null and b/lib/objenesis-2.4.jar differ
diff --git a/lib/powermock-mockito-1.6.6-full.jar b/lib/powermock-mockito-1.6.6-full.jar
new file mode 100644
index 0000000..8dfbafe
Binary files /dev/null and b/lib/powermock-mockito-1.6.6-full.jar differ
diff --git a/src/besouro/classification/zorro/ZorroEpisodeClassification.java b/src/besouro/classification/zorro/ZorroEpisodeClassification.java
index ef7a89d..15524b4 100644
--- a/src/besouro/classification/zorro/ZorroEpisodeClassification.java
+++ b/src/besouro/classification/zorro/ZorroEpisodeClassification.java
@@ -67,7 +67,7 @@ protected QueryResult queryjessRules(Episode episode) {
engine.run();
- //debugFacts();
+ debugFacts();
QueryResult result = engine.runQueryStar("episode-classification-query", new ValueVector());
return result;
@@ -81,9 +81,11 @@ protected QueryResult queryjessRules(Episode episode) {
private void debugFacts() {
Iterator it = engine.listFacts();
- while (it.hasNext()) {
- System.out.println(it.next());
- }
+ try {
+ while (it.hasNext()) {
+ System.out.println(it.next());
+ }
+ } catch(Exception e) {}
}
public void assertJessFact(int index, Action action){
diff --git a/src/besouro/listeners/BesouroListenerSet.java b/src/besouro/listeners/BesouroListenerSet.java
index fb35af6..5a2fd97 100644
--- a/src/besouro/listeners/BesouroListenerSet.java
+++ b/src/besouro/listeners/BesouroListenerSet.java
@@ -8,10 +8,13 @@
import besouro.plugin.Activator;
import besouro.model.Action;
import besouro.stream.ActionOutputStream;
+import java.util.Date;
public class BesouroListenerSet implements ActionOutputStream {
private static BesouroListenerSet singleton;
+ private String actualEditedFile = "";
+ private Date actualEditedDate;
public static BesouroListenerSet getSingleton() {
if (singleton==null) {
@@ -67,4 +70,19 @@ public void addAction(Action action) {
}
+ public String getActualEditedFile() {
+ return this.actualEditedFile;
+ }
+
+ public void setActualEditedFile(String actualEditedFile) {
+ this.actualEditedFile = actualEditedFile;
+ }
+
+ public Date getActualEditedDate() {
+ return this.actualEditedDate;
+ }
+
+ public void setActualEditedDate(Date actualEditedDate) {
+ this.actualEditedDate = actualEditedDate;
+ }
}
diff --git a/src/besouro/listeners/JUnitListener.java b/src/besouro/listeners/JUnitListener.java
index 6d89a9e..8509bb5 100644
--- a/src/besouro/listeners/JUnitListener.java
+++ b/src/besouro/listeners/JUnitListener.java
@@ -5,7 +5,9 @@
import java.util.Date;
import java.util.List;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IJavaElement;
@@ -19,6 +21,8 @@
import org.eclipse.jdt.junit.model.ITestRunSession;
import org.eclipse.jdt.junit.model.ITestSuiteElement;
+import besouro.measure.JavaStatementMeter;
+import besouro.model.EditAction;
import besouro.model.UnitTestAction;
import besouro.model.UnitTestCaseAction;
import besouro.model.UnitTestSessionAction;
@@ -28,6 +32,7 @@
public class JUnitListener extends TestRunListener {
private ActionOutputStream stream;
+ private JavaStatementMeter measurer = new JavaStatementMeter();
public JUnitListener(ActionOutputStream stream) {
this.stream = stream;
@@ -36,6 +41,35 @@ public JUnitListener(ActionOutputStream stream) {
@Override
public void sessionFinished(ITestRunSession session) {
+ // Get Last edited file
+ BesouroListenerSet listeners = BesouroListenerSet.getSingleton();
+ String actualEditedFile = listeners.getActualEditedFile();
+
+ // Add last edited file
+ if (!actualEditedFile.isEmpty()) {
+ Date actualEditedDate = listeners.getActualEditedDate();
+
+ Path path = new Path(actualEditedFile);
+ IFile changedFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+
+ EditAction action = new EditAction(actualEditedDate, changedFile.getName());
+
+ JavaStatementMeter meter = this.measurer.measureJavaFile(changedFile);
+
+ action.setFileSize((int) changedFile.getLocation().toFile().length());
+ action.setIsTestEdit(meter.isTest());
+ action.setMethodsCount(meter.getNumOfMethods());
+ action.setStatementsCount(meter.getNumOfStatements());
+ action.setTestMethodsCount(meter.getNumOfTestMethods());
+ action.setTestAssertionsCount(meter.getNumOfTestAssertions());
+
+ stream.addAction(action);
+ }
+
+ listeners.setActualEditedFile("");
+ // END - Get Last edited file
+
+
boolean isSuccessfull = true;
for (UnitTestAction action: getTestFileActions(session, session.getLaunchedProject())) {
stream.addAction(action);
@@ -105,6 +139,13 @@ private IResource findTestResource(IJavaProject project, String className) {
throw new RuntimeException(e);
}
}
+
+ /**
+ * for testing purposes
+ */
+ public void setMeasurer(JavaStatementMeter meter) {
+ this.measurer = meter;
+ }
// private void print(ITestElement session) {
diff --git a/src/besouro/listeners/JavaStructureChangeListener.java b/src/besouro/listeners/JavaStructureChangeListener.java
index a37c16c..90b39b9 100644
--- a/src/besouro/listeners/JavaStructureChangeListener.java
+++ b/src/besouro/listeners/JavaStructureChangeListener.java
@@ -5,13 +5,21 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IElementChangedListener;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaElementDelta;
+import besouro.measure.JavaStatementMeter;
+import besouro.model.EditAction;
import besouro.model.RefactoringAction;
import besouro.stream.ActionOutputStream;
@@ -37,12 +45,16 @@ public class JavaStructureChangeListener implements IElementChangedListener {
protected static final String PROP_CURRENT_TEST_ASSERTIONS = "Current-Test-Assertions";
private ActionOutputStream stream;
+ private JavaStatementMeter measurer = new JavaStatementMeter();
public JavaStructureChangeListener(ActionOutputStream stream) {
this.stream = stream;
}
public void elementChanged(ElementChangedEvent event) {
+
+ addToEditedFiles(event.getDelta());
+
// IJavaElementDelta jed = event.getDelta().getAffectedChildren()[0];
IJavaElementDelta[] childrenChanges = event.getDelta().getAffectedChildren();
@@ -261,4 +273,63 @@ private void traverse(IJavaElementDelta delta, List additions
traverse(children[i], additions, deletions);
}
}
+
+ private void addToEditedFiles(IJavaElementDelta delta) {
+ IResource resource = delta.getElement().getResource();
+ int flag = delta.getFlags();
+ int kind = delta.getKind();
+
+ // :RESOLVED: 28 Mar 2017
+ // Author: Adonis Figueroa
+ // Note that the 540673 and 540680 enumeration types are not listed in the IJavaElementDelta static filed.
+ // However, these numbers are generated when a File is edited so that it is checked in the logical condition.
+ int EDITED_FLAG = 540673;
+ int METHOD_UPDATED_FLAG = 540680; //Method Name Updated | Added | Deleted
+
+ if ((kind == IJavaElementDelta.CHANGED) && resource instanceof IFile &&
+ (flag == EDITED_FLAG || flag == METHOD_UPDATED_FLAG)) {
+ if (JAVA.equals(resource.getFileExtension())) {
+ String fullPath = resource.getFullPath().toString();
+
+ BesouroListenerSet listeners = BesouroListenerSet.getSingleton();
+ String previousEditedFile = listeners.getActualEditedFile();
+
+ // If edited file is different --> add Action
+ if (!previousEditedFile.isEmpty() && !previousEditedFile.equals(fullPath)) {
+ Date previousEditedDate = listeners.getActualEditedDate();
+ Path path = new Path(previousEditedFile);
+
+ IFile changedFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ EditAction action = new EditAction(previousEditedDate, changedFile.getName());
+
+ JavaStatementMeter meter = this.measurer.measureJavaFile(changedFile);
+
+ action.setFileSize((int) changedFile.getLocation().toFile().length());
+ action.setIsTestEdit(meter.isTest());
+ action.setMethodsCount(meter.getNumOfMethods());
+ action.setStatementsCount(meter.getNumOfStatements());
+ action.setTestMethodsCount(meter.getNumOfTestMethods());
+ action.setTestAssertionsCount(meter.getNumOfTestAssertions());
+
+ stream.addAction(action);
+ }
+
+ listeners.setActualEditedFile(fullPath);
+ listeners.setActualEditedDate(new Date());
+ }
+ }
+
+ // Recursively look for changes on children elements.
+ IJavaElementDelta[] children = delta.getAffectedChildren();
+ for (int i = 0; i < children.length; i++) {
+ addToEditedFiles(children[i]);
+ }
+ }
+
+ /**
+ * for testing purposes
+ */
+ public void setMeasurer(JavaStatementMeter meter) {
+ this.measurer = meter;
+ }
}
\ No newline at end of file
diff --git a/src/besouro/listeners/ResourceChangeListener.java b/src/besouro/listeners/ResourceChangeListener.java
index 0d8afd2..aa829d0 100644
--- a/src/besouro/listeners/ResourceChangeListener.java
+++ b/src/besouro/listeners/ResourceChangeListener.java
@@ -56,7 +56,7 @@ public boolean visit(IResourceDelta delta) throws CoreException {
IResource resource = delta.getResource();
int flag = delta.getFlags();
- int kind = delta.getKind();
+ //int kind = delta.getKind();
// If there is compilation problem with the current java file then send out the activity data.
// do not catch errors in other files
@@ -76,26 +76,6 @@ public boolean visit(IResourceDelta delta) throws CoreException {
// do not visit the children
return false;
- } else if ((kind == IResourceDelta.CHANGED) && resource instanceof IFile && flag == IResourceDelta.CONTENT) {
-
- if (resource.getLocation().toString().endsWith(".java")) {
-
- IFile changedFile = (IFile) resource;
- EditAction action = new EditAction(new Date(), changedFile.getName());
-
- JavaStatementMeter meter = this.measurer.measureJavaFile(changedFile);
-
- action.setFileSize((int) changedFile.getLocation().toFile().length());
- action.setIsTestEdit(meter.isTest());
- action.setMethodsCount(meter.getNumOfMethods());
- action.setStatementsCount(meter.getNumOfStatements());
- action.setTestMethodsCount(meter.getNumOfTestMethods());
- action.setTestAssertionsCount(meter.getNumOfTestAssertions());
-
- sensor.addAction(action);
-
- }
-
}
// visit the children
diff --git a/test/besouro/classification/TDDMeasureTest.java b/test/besouro/classification/TDDMeasureTest.java
index 360a470..0de04de 100644
--- a/test/besouro/classification/TDDMeasureTest.java
+++ b/test/besouro/classification/TDDMeasureTest.java
@@ -1,7 +1,6 @@
package besouro.classification;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Test;
import besouro.model.Episode;
diff --git a/test/besouro/classification/besouro/BesouroEpisodeClassifierTest.java b/test/besouro/classification/besouro/BesouroEpisodeClassifierTest.java
index f2e32aa..a5187c9 100644
--- a/test/besouro/classification/besouro/BesouroEpisodeClassifierTest.java
+++ b/test/besouro/classification/besouro/BesouroEpisodeClassifierTest.java
@@ -1,23 +1,17 @@
package besouro.classification.besouro;
-import static org.mockito.Mockito.when;
-
import java.util.Iterator;
import jess.QueryResult;
import jess.ValueVector;
-import junit.framework.Assert;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import besouro.classification.zorro.TestEpisodesFactory;
import besouro.classification.zorro.ZorroEpisodeClassifierTest;
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
import besouro.model.EditAction;
-import besouro.model.RefactoringAction;
import besouro.model.UnitTestCaseAction;
/**
@@ -54,10 +48,8 @@ public void productionCategory2WithTestBreak() throws Exception {
zorro.assertJessFact(1, editAction);
- // Unit test failue
+ // Unit test failure
UnitTestCaseAction unitTestAction = new UnitTestCaseAction(clock, TestEpisodesFactory.testFile);
- unitTestAction.setFailureMessage("Failed to import");
- zorro.assertJessFact(2, unitTestAction);
// Edit on production code (corrects the error)
editAction = new EditAction(clock, TestEpisodesFactory.productionFile);
diff --git a/test/besouro/classification/besouro/BesouroTDDConformanceTest.java b/test/besouro/classification/besouro/BesouroTDDConformanceTest.java
index 58ccc29..a9e3a16 100644
--- a/test/besouro/classification/besouro/BesouroTDDConformanceTest.java
+++ b/test/besouro/classification/besouro/BesouroTDDConformanceTest.java
@@ -1,7 +1,6 @@
package besouro.classification.besouro;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/classification/randomHeuristic/RandomHeuristicTDDConformanceTest.java b/test/besouro/classification/randomHeuristic/RandomHeuristicTDDConformanceTest.java
index 440e7ff..9d8cf9f 100644
--- a/test/besouro/classification/randomHeuristic/RandomHeuristicTDDConformanceTest.java
+++ b/test/besouro/classification/randomHeuristic/RandomHeuristicTDDConformanceTest.java
@@ -1,7 +1,6 @@
package besouro.classification.randomHeuristic;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Test;
import besouro.model.Episode;
diff --git a/test/besouro/classification/zorro/JessTemplatesTest.java b/test/besouro/classification/zorro/JessTemplatesTest.java
index 69343ea..84c02c0 100644
--- a/test/besouro/classification/zorro/JessTemplatesTest.java
+++ b/test/besouro/classification/zorro/JessTemplatesTest.java
@@ -1,6 +1,4 @@
package besouro.classification.zorro;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import java.util.Date;
@@ -12,7 +10,6 @@
import jess.Value;
import jess.ValueVector;
-import org.eclipse.core.resources.IResource;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/classification/zorro/OneWayTDDHeuristicAlgorithmTest.java b/test/besouro/classification/zorro/OneWayTDDHeuristicAlgorithmTest.java
index cc861e4..7d0e1bf 100644
--- a/test/besouro/classification/zorro/OneWayTDDHeuristicAlgorithmTest.java
+++ b/test/besouro/classification/zorro/OneWayTDDHeuristicAlgorithmTest.java
@@ -1,5 +1,7 @@
package besouro.classification.zorro;
+import org.junit.Assert;
+
import jess.Batch;
import jess.Fact;
import jess.JessException;
@@ -45,19 +47,19 @@ public void testPatternOne() throws Exception {
engine.run();
QueryResult result = engine.runQueryStar("episode-tdd-conformance-query-by-index",(new ValueVector()).add(new Value(1, RU.INTEGER)));
- assertTrue("Result to episode 1", result.next());
- assertEquals("Test episode 1", "True", result.getString("isTDD"));
+ Assert.assertTrue("Result to episode 1", result.next());
+ Assert.assertEquals("Test episode 1", "True", result.getString("isTDD"));
result = engine.runQueryStar("episode-tdd-conformance-query-by-index",(new ValueVector()).add(new Value(2, RU.INTEGER)));
- assertTrue("Result to episode 2", result.next());
- assertEquals("Test episode 2", "True", result.getString("isTDD"));
+ Assert.assertTrue("Result to episode 2", result.next());
+ Assert.assertEquals("Test episode 2", "True", result.getString("isTDD"));
result = engine.runQueryStar("episode-tdd-conformance-query-by-index",(new ValueVector()).add(new Value(3, RU.INTEGER)));
- assertTrue("Result to episode 3", result.next());
- assertEquals("Test episode 3", "True", result.getString("isTDD"));
+ Assert.assertTrue("Result to episode 3", result.next());
+ Assert.assertEquals("Test episode 3", "True", result.getString("isTDD"));
result = engine.runQueryStar("episode-tdd-conformance-query-by-index",(new ValueVector()).add(new Value(4, RU.INTEGER)));
- assertTrue("Result to episode 4", result.next());
- assertEquals("Test episode 4", "True", result.getString("isTDD"));
+ Assert.assertTrue("Result to episode 4", result.next());
+ Assert.assertEquals("Test episode 4", "True", result.getString("isTDD"));
}
}
\ No newline at end of file
diff --git a/test/besouro/classification/zorro/ZorroTDDConformanceTest.java b/test/besouro/classification/zorro/ZorroTDDConformanceTest.java
index 442b027..0dea844 100644
--- a/test/besouro/classification/zorro/ZorroTDDConformanceTest.java
+++ b/test/besouro/classification/zorro/ZorroTDDConformanceTest.java
@@ -1,7 +1,6 @@
package besouro.classification.zorro;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Test;
import besouro.model.Episode;
diff --git a/test/besouro/integration/IntegrationTestBaseClass.java b/test/besouro/integration/IntegrationTestBaseClass.java
index 763b065..2fddd42 100644
--- a/test/besouro/integration/IntegrationTestBaseClass.java
+++ b/test/besouro/integration/IntegrationTestBaseClass.java
@@ -4,16 +4,10 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import java.io.File;
-
-import junit.framework.Assert;
-
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.junit.model.ITestElement.Result;
-import org.junit.After;
import org.junit.Before;
-import org.junit.Test;
import besouro.classification.zorro.ZorroEpisodeClassifierStream;
import besouro.listeners.JUnitListener;
@@ -25,8 +19,6 @@
import besouro.listeners.mock.ResourceChangeEventFactory;
import besouro.listeners.mock.WindowEventsFactory;
import besouro.measure.JavaStatementMeter;
-import besouro.persistence.ActionFileStorage;
-import besouro.stream.ActionOutputStream;
import besouro.stream.EpisodesRecognizerActionStream;
@@ -55,14 +47,17 @@ public void setup(EpisodesRecognizerActionStream stream) throws Exception {
resourceListener = new ResourceChangeListener(stream);
junitListener = new JUnitListener(stream);
winListener = new WindowListener(stream);
+ junitListener = new JUnitListener(stream);
// its strange yet, i know
meter = mock(JavaStatementMeter.class);
measurer = mock(JavaStatementMeter.class);
when(measurer.measureJavaFile(any(IFile.class))).thenReturn(meter);
- resourceListener.setMeasurer(measurer);
+ //resourceListener.setMeasurer(measurer);
+ javaListener.setMeasurer(measurer);
winListener.setMeasurer(measurer);
+ junitListener.setMeasurer(measurer);
// Open file (calculates the first file metrics)
when(meter.getNumOfMethods()).thenReturn(3);
@@ -86,28 +81,37 @@ protected void addTestFirst1Actions() throws Exception {
javaListener.elementChanged(JavaStructureChangeEventFactory.createAddMethodAction("TestFile.java", "TestFile", "aTestMethod"));
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
when(meter.getNumOfTestMethods()).thenReturn(10);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Compile error on test
resourceListener.resourceChanged(ResourceChangeEventFactory.createBuildErrorEvent("TestFile.java", "error message"));
// Work on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 35));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfStatements()).thenReturn(0);
when(meter.getNumOfMethods()).thenReturn(0);
when(meter.getNumOfTestAssertions()).thenReturn(0);
when(meter.getNumOfTestMethods()).thenReturn(0);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",35));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 35);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.ERROR));
- // Edit on prodction code
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java", 37));
+ // Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 37));
+ //To get previous edited file, used in next "sessionFinished"
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 37);
+
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
}
@@ -116,23 +120,28 @@ protected void addTestFirt2Events() throws CoreException, Exception {
// Add test method
javaListener.elementChanged(JavaStructureChangeEventFactory.createAddMethodAction("TestFile.java", "TestFile", "aTestMethod"));
-
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
when(meter.getNumOfTestMethods()).thenReturn(5);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Compile error on test
resourceListener.resourceChanged(ResourceChangeEventFactory.createBuildErrorEvent("TestFile.java", "error message"));
// Work on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 35));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfStatements()).thenReturn(0);
when(meter.getNumOfMethods()).thenReturn(0);
when(meter.getNumOfTestAssertions()).thenReturn(0);
when(meter.getNumOfTestMethods()).thenReturn(0);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",35));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 35);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -143,23 +152,32 @@ protected void addTestFirst3Events() throws CoreException, Exception {
javaListener.elementChanged(JavaStructureChangeEventFactory.createAddMethodAction("TestFile.java", "TestFile", "aTestMethod"));
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
when(meter.getNumOfTestMethods()).thenReturn(5);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Work on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 35));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfTestAssertions()).thenReturn(0);
when(meter.getNumOfTestMethods()).thenReturn(0);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",35));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 35);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile.java", "TestFile", Result.ERROR));
// Work on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 37));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",37));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 37);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -170,18 +188,27 @@ protected void addTestFirst4() throws CoreException, Exception {
javaListener.elementChanged(JavaStructureChangeEventFactory.createAddMethodAction("TestFile.java", "TestFile", "aTestMethod"));
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
when(meter.getNumOfTestMethods()).thenReturn(5);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Work on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 37));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",37));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 37);
// Work on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 39));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",39));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 39);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -189,49 +216,67 @@ protected void addTestFirst4() throws CoreException, Exception {
protected void addTestFirstRealCase() throws CoreException, Exception {
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(1);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile.java", "TestFile", Result.ERROR));
// Edit on production code
- when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",33));
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 33));
+ //To get previous edited file, used in next "elementChanged"
+ when(meter.hasTest()).thenReturn(false);
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 33);
+
// Add test method
javaListener.elementChanged(JavaStructureChangeEventFactory.createAddMethodAction("TestFile.java", "TestFile", "aTestMethod"));
// Edit on test
- when(meter.hasTest()).thenReturn(true);
- when(meter.getNumOfTestMethods()).thenReturn(1);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",133));
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 133));
// Compile error on test
resourceListener.resourceChanged(ResourceChangeEventFactory.createBuildErrorEvent("TestFile.java", "error message"));
+
+ //To get previous edited file, used in next "elementChanged"
+ when(meter.hasTest()).thenReturn(true);
+ when(meter.getNumOfTestMethods()).thenReturn(1);
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 133);
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 135));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(true);
//TODO [rule] review substancial concept
when(meter.getNumOfMethods()).thenReturn(1);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",135));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 135);
// Add prod method
// in the original test, it was an ADD CLASS
javaListener.elementChanged(JavaStructureChangeEventFactory.createRemoveMethodAction("ProductionFile.java", "ProductionFile", "aMethod"));
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 35));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",35));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 35);
// Add prod method
javaListener.elementChanged(JavaStructureChangeEventFactory.createRemoveMethodAction("ProductionFile.java", "ProductionFile", "aMethod"));
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 38));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfMethods()).thenReturn(1);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",38));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 38);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -239,36 +284,51 @@ protected void addTestFirstRealCase() throws CoreException, Exception {
protected void addTestLast1Actions() throws Exception {
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.isTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
}
protected void addTestLast2Events() throws CoreException, Exception {
- // Edit on production code
+ // Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "elementChanged"
when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile.java", "MyTest", Result.ERROR));
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
//TODO [rule] review substancial concept
when(meter.getNumOfTestMethods()).thenReturn(3);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -276,9 +336,12 @@ protected void addTestLast2Events() throws CoreException, Exception {
protected void addRefactoring1A_Actions() throws Exception {
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
when(meter.getNumOfTestMethods()).thenReturn(1);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -286,17 +349,23 @@ protected void addRefactoring1A_Actions() throws Exception {
protected void addRefactoringCategory1a_2_events() throws Exception {
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
when(meter.getNumOfTestMethods()).thenReturn(1);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile.java", "MyTest", Result.ERROR));
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 37));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(true);
when(meter.getNumOfTestMethods()).thenReturn(2);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",37));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 37);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -313,16 +382,21 @@ protected void addRefactoringCategory1B_events() throws Exception {
protected void addRefactoringCategory2A_events() throws Exception {
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile", "MyTest", Result.ERROR));
// Edit on production code
- when(meter.hasTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",35));
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 35));
+ //To get previous edited file, used in next "sessionFinished"
+ when(meter.hasTest()).thenReturn(false);
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 35);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -332,7 +406,7 @@ protected void addRefactoringCategory2B_events() throws Exception {
// Add prod method
javaListener.elementChanged(JavaStructureChangeEventFactory.createRemoveMethodAction("ProductionFile.java", "ProductionFile", "aMethod"));
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile", "MyTest", Result.ERROR));
// rename prod method
@@ -344,10 +418,13 @@ protected void addRefactoringCategory2B_events() throws Exception {
protected void addRefactoringCategory3_1_events() throws CoreException, Exception {
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(false);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile", "MyTest", Result.ERROR));
addRefactoring1A_Actions();
@@ -364,9 +441,12 @@ protected void addRefactoringCategory3_2_events() throws CoreException,
protected void addProductionCategory1Events() throws CoreException, Exception {
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfStatements()).thenReturn(14);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile.java", Result.OK));
@@ -375,15 +455,21 @@ protected void addProductionCategory1Events() throws CoreException, Exception {
protected void addProductionCategory1WithTestBreakEvents() throws Exception {
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfStatements()).thenReturn(14);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
- // Unit test failue
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("sesionname", "TestFile.java", Result.FAILURE));
// Edit on production code (corrects the error)
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",34));
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 34));
+
+ //To get previous edited file, used in next "sessionFinished"
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 34);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile.java", Result.OK));
@@ -394,10 +480,13 @@ protected void addProductionCategory2Events() throws CoreException, Exception {
// method increase but byte size decrease
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 5));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfStatements()).thenReturn(2);
when(meter.getNumOfMethods()).thenReturn(5);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",5));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 5);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile.java", Result.OK));
@@ -407,11 +496,14 @@ protected void addProductionCategory2_2_events() throws Exception {
// method increase but byte statement decrease
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 15));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfMethods()).thenReturn(5);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",15));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 15);
- // Unit test failue
+ // Unit test failure
// TODO [rule] redundancy between prod/refact
// its a strange case without an edit after the test failure :-/
@@ -428,10 +520,13 @@ protected void addProductionCategory3Events() throws Exception {
// method increase, and size increase and LARGE byte increase
// Edit on production code
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("ProductionFile.java", 133));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.hasTest()).thenReturn(false);
when(meter.getNumOfMethods()).thenReturn(5);
when(meter.getNumOfStatements()).thenReturn(5);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("ProductionFile.java",133));
+ JavaStructureChangeEventFactory.eclipseMock("ProductionFile.java", 133);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile.java", Result.OK));
@@ -463,9 +558,12 @@ protected void addRegressionCategory2Events() throws CoreException, Exception {
protected void addTestAddCategory1Events() throws CoreException, Exception {
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
@@ -473,18 +571,24 @@ protected void addTestAddCategory1Events() throws CoreException, Exception {
protected void addTestAddCategory2Events() throws CoreException, Exception {
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
when(meter.getNumOfTestAssertions()).thenReturn(3);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
-
- // Unit test failue
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
+
+ // Unit test failure
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("TestFile.java", "TestFile", Result.ERROR));
// Edit on test
+ javaListener.elementChanged(JavaStructureChangeEventFactory.createEditMethodAction("TestFile.java", 33));
+
+ //To get previous edited file, used in next "sessionFinished"
when(meter.isTest()).thenReturn(true);
//TODO [rule] review substancial concept
when(meter.getNumOfTestMethods()).thenReturn(3);
- resourceListener.resourceChanged(ResourceChangeEventFactory.createEditAction("TestFile.java",33));
+ JavaStructureChangeEventFactory.eclipseMock("TestFile.java", 33);
// Unit test pass
junitListener.sessionFinished(JUnitEventFactory.createJunitSession("testSessionName", "TestFile", Result.OK));
diff --git a/test/besouro/integration/ProductionRecognition.java b/test/besouro/integration/ProductionRecognition.java
index 7e2ace8..9f52315 100644
--- a/test/besouro/integration/ProductionRecognition.java
+++ b/test/besouro/integration/ProductionRecognition.java
@@ -1,16 +1,15 @@
package besouro.integration;
-import static org.mockito.Mockito.when;
-import junit.framework.Assert;
+import org.junit.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
-
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class ProductionRecognition extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/RefactoringRecognition.java b/test/besouro/integration/RefactoringRecognition.java
index 41bcc42..789505c 100644
--- a/test/besouro/integration/RefactoringRecognition.java
+++ b/test/besouro/integration/RefactoringRecognition.java
@@ -1,17 +1,15 @@
package besouro.integration;
-import static org.mockito.Mockito.when;
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
-
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.JavaStructureChangeEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class RefactoringRecognition extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/RegressionRecognition.java b/test/besouro/integration/RegressionRecognition.java
index db98fac..522ce67 100644
--- a/test/besouro/integration/RegressionRecognition.java
+++ b/test/besouro/integration/RegressionRecognition.java
@@ -1,16 +1,15 @@
package besouro.integration;
-import static org.mockito.Mockito.when;
-import junit.framework.Assert;
+import org.junit.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
-
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class RegressionRecognition extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/TDDMeasureTest.java b/test/besouro/integration/TDDMeasureTest.java
index 9158054..49a4b3d 100644
--- a/test/besouro/integration/TDDMeasureTest.java
+++ b/test/besouro/integration/TDDMeasureTest.java
@@ -1,12 +1,17 @@
package besouro.integration;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
import besouro.classification.zorro.ZorroEpisodeClassifierStream;
-import besouro.classification.zorro.ZorroTDDConformance;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TDDMeasureTest extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/TestAditionRecognition.java b/test/besouro/integration/TestAditionRecognition.java
index 2f58c10..8fb0903 100644
--- a/test/besouro/integration/TestAditionRecognition.java
+++ b/test/besouro/integration/TestAditionRecognition.java
@@ -1,16 +1,14 @@
package besouro.integration;
-import static org.mockito.Mockito.when;
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
-
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TestAditionRecognition extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/TestFirstRecognition.java b/test/besouro/integration/TestFirstRecognition.java
index 10eda61..ff160e8 100644
--- a/test/besouro/integration/TestFirstRecognition.java
+++ b/test/besouro/integration/TestFirstRecognition.java
@@ -1,18 +1,14 @@
package besouro.integration;
-import static org.mockito.Mockito.when;
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.JavaStructureChangeEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
-import besouro.persistence.ActionFileStorage;
-
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TestFirstRecognition extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/TestLastRecognition.java b/test/besouro/integration/TestLastRecognition.java
index 1c2c9b5..f8632a4 100644
--- a/test/besouro/integration/TestLastRecognition.java
+++ b/test/besouro/integration/TestLastRecognition.java
@@ -1,16 +1,15 @@
package besouro.integration;
-import static org.mockito.Mockito.when;
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.junit.model.ITestElement.Result;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
-
-import besouro.listeners.mock.JUnitEventFactory;
-import besouro.listeners.mock.ResourceChangeEventFactory;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TestLastRecognition extends IntegrationTestBaseClass {
@Test
diff --git a/test/besouro/integration/besouro/ProductionRecognition.java b/test/besouro/integration/besouro/ProductionRecognition.java
index 694a4cb..e9e8f01 100644
--- a/test/besouro/integration/besouro/ProductionRecognition.java
+++ b/test/besouro/integration/besouro/ProductionRecognition.java
@@ -1,13 +1,15 @@
package besouro.integration.besouro;
-import junit.framework.Assert;
+import org.junit.Assert;
-import org.junit.Before;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.classification.besouro.BesouroEpisodeClassifierStream;
-import besouro.integration.IntegrationTestBaseClass;
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class ProductionRecognition extends BesouroBaseIntegrationTest {
diff --git a/test/besouro/integration/besouro/RefactoringRecognition.java b/test/besouro/integration/besouro/RefactoringRecognition.java
index 8b68333..b27f1f2 100644
--- a/test/besouro/integration/besouro/RefactoringRecognition.java
+++ b/test/besouro/integration/besouro/RefactoringRecognition.java
@@ -1,13 +1,14 @@
package besouro.integration.besouro;
-import junit.framework.Assert;
-
-import org.junit.Before;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.classification.besouro.BesouroEpisodeClassifierStream;
-import besouro.integration.IntegrationTestBaseClass;
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class RefactoringRecognition extends BesouroBaseIntegrationTest {
diff --git a/test/besouro/integration/besouro/RegressionRecognition.java b/test/besouro/integration/besouro/RegressionRecognition.java
index 163c9f4..fade790 100644
--- a/test/besouro/integration/besouro/RegressionRecognition.java
+++ b/test/besouro/integration/besouro/RegressionRecognition.java
@@ -1,14 +1,14 @@
package besouro.integration.besouro;
-import junit.framework.Assert;
-
-import org.junit.Before;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.classification.besouro.BesouroEpisodeClassifierStream;
-import besouro.integration.IntegrationTestBaseClass;
-
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class RegressionRecognition extends BesouroBaseIntegrationTest {
@Test
diff --git a/test/besouro/integration/besouro/TestAdditionRecognition.java b/test/besouro/integration/besouro/TestAdditionRecognition.java
index 3a35cf4..6540316 100644
--- a/test/besouro/integration/besouro/TestAdditionRecognition.java
+++ b/test/besouro/integration/besouro/TestAdditionRecognition.java
@@ -1,13 +1,14 @@
package besouro.integration.besouro;
-import junit.framework.Assert;
-
-import org.junit.Before;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
-import besouro.classification.besouro.BesouroEpisodeClassifierStream;
-import besouro.integration.IntegrationTestBaseClass;
-
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TestAdditionRecognition extends BesouroBaseIntegrationTest {
diff --git a/test/besouro/integration/besouro/TestFirstRecognition.java b/test/besouro/integration/besouro/TestFirstRecognition.java
index 6bf5634..b2c0893 100644
--- a/test/besouro/integration/besouro/TestFirstRecognition.java
+++ b/test/besouro/integration/besouro/TestFirstRecognition.java
@@ -1,14 +1,15 @@
package besouro.integration.besouro;
-import junit.framework.Assert;
-
-import org.junit.Before;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
-
-import besouro.classification.besouro.BesouroEpisodeClassifierStream;
-import besouro.integration.IntegrationTestBaseClass;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TestFirstRecognition extends BesouroBaseIntegrationTest {
@Test
diff --git a/test/besouro/integration/besouro/TestLastRecognition.java b/test/besouro/integration/besouro/TestLastRecognition.java
index 2cd6074..16fb9d4 100644
--- a/test/besouro/integration/besouro/TestLastRecognition.java
+++ b/test/besouro/integration/besouro/TestLastRecognition.java
@@ -1,14 +1,15 @@
package besouro.integration.besouro;
-import junit.framework.Assert;
-
-import org.junit.Before;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.junit.Assert;
import org.junit.Test;
-
-import besouro.classification.besouro.BesouroEpisodeClassifierStream;
-import besouro.integration.IntegrationTestBaseClass;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class TestLastRecognition extends BesouroBaseIntegrationTest {
@Test
diff --git a/test/besouro/listeners/JUnitListenerTest.java b/test/besouro/listeners/JUnitListenerTest.java
index 8168e39..00a577a 100644
--- a/test/besouro/listeners/JUnitListenerTest.java
+++ b/test/besouro/listeners/JUnitListenerTest.java
@@ -2,10 +2,9 @@
import java.util.ArrayList;
-import junit.framework.Assert;
-
import org.eclipse.jdt.junit.model.ITestElement.Result;
import org.eclipse.jdt.junit.model.ITestRunSession;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/listeners/JavaMeasurerTest.java b/test/besouro/listeners/JavaMeasurerTest.java
index 9d211b6..77484fe 100644
--- a/test/besouro/listeners/JavaMeasurerTest.java
+++ b/test/besouro/listeners/JavaMeasurerTest.java
@@ -4,8 +4,7 @@
import java.util.Date;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/listeners/JavaStructureListenerTest.java b/test/besouro/listeners/JavaStructureListenerTest.java
index e6cf7b1..822ee03 100644
--- a/test/besouro/listeners/JavaStructureListenerTest.java
+++ b/test/besouro/listeners/JavaStructureListenerTest.java
@@ -5,11 +5,10 @@
import java.util.ArrayList;
-import junit.framework.Assert;
-
import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaElementDelta;
+import org.junit.Assert;
import org.junit.Test;
import besouro.listeners.mock.FakeActionStream;
@@ -49,8 +48,8 @@ public void shouldGenerateARemoveEvent() {
IJavaElement parentElement = JavaStructureChangeEventFactory.createJavaElement(null,"AnyClass.java","AnyClass", IJavaElement.CLASS_FILE);
IJavaElement fieldElement = JavaStructureChangeEventFactory.createJavaElement(parentElement,"AnyClass.java","AnyClass#aMethod", IJavaElement.FIELD);
- IJavaElementDelta childDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(fieldElement,IJavaElementDelta.REMOVED);
- IJavaElementDelta parentDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElement, IJavaElementDelta.CHANGED);
+ IJavaElementDelta childDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(fieldElement,IJavaElementDelta.REMOVED, -1);
+ IJavaElementDelta parentDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElement, IJavaElementDelta.CHANGED, -1);
when(parentDelta.getAffectedChildren()).thenReturn(new IJavaElementDelta[]{childDelta});
ElementChangedEvent event = mock(ElementChangedEvent.class);
@@ -105,13 +104,13 @@ public void shouldGenerateAMoveEvent() {
IJavaElement fromElement = JavaStructureChangeEventFactory.createJavaElement(parentElementFrom,"AnyClass.java", "aMethod",IJavaElement.FIELD);
IJavaElement toElement = JavaStructureChangeEventFactory.createJavaElement(parentElementTo,"AnyOtherClass.java", "aMethod",IJavaElement.FIELD);
- IJavaElementDelta childDelta1 = JavaStructureChangeEventFactory.createJavaChangeDelta(fromElement, IJavaElementDelta.REMOVED);
- IJavaElementDelta childDelta2 = JavaStructureChangeEventFactory.createJavaChangeDelta(toElement, IJavaElementDelta.ADDED);
+ IJavaElementDelta childDelta1 = JavaStructureChangeEventFactory.createJavaChangeDelta(fromElement, IJavaElementDelta.REMOVED, -1);
+ IJavaElementDelta childDelta2 = JavaStructureChangeEventFactory.createJavaChangeDelta(toElement, IJavaElementDelta.ADDED, -1);
- IJavaElementDelta classDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElementFrom, IJavaElementDelta.CHANGED);
+ IJavaElementDelta classDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElementFrom, IJavaElementDelta.CHANGED, -1);
when(classDelta.getAffectedChildren()).thenReturn(new IJavaElementDelta[]{childDelta1, childDelta2});
- IJavaElementDelta parentDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElementFrom, IJavaElementDelta.CHANGED);
+ IJavaElementDelta parentDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElementFrom, IJavaElementDelta.CHANGED, -1);
when(parentDelta.getAffectedChildren()).thenReturn(new IJavaElementDelta[]{classDelta});
ElementChangedEvent event = mock(ElementChangedEvent.class);
diff --git a/test/besouro/listeners/ListenerSetTest.java b/test/besouro/listeners/ListenerSetTest.java
index 9262439..dfb0c7f 100644
--- a/test/besouro/listeners/ListenerSetTest.java
+++ b/test/besouro/listeners/ListenerSetTest.java
@@ -4,12 +4,11 @@
import java.util.List;
import org.eclipse.core.resources.IFile;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import static org.mockito.Mockito.*;
-import junit.framework.Assert;
-
import besouro.listeners.BesouroListenerSet;
import besouro.listeners.mock.WindowEventsFactory;
import besouro.measure.JavaStatementMeter;
diff --git a/test/besouro/listeners/ResourceListenerTest.java b/test/besouro/listeners/ResourceListenerTest.java
index 518b2d8..8dc6d0e 100644
--- a/test/besouro/listeners/ResourceListenerTest.java
+++ b/test/besouro/listeners/ResourceListenerTest.java
@@ -5,10 +5,8 @@
import java.util.ArrayList;
-import junit.framework.Assert;
-
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResourceChangeEvent;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -18,7 +16,6 @@
import besouro.measure.JavaStatementMeter;
import besouro.model.Action;
import besouro.model.CompilationAction;
-import besouro.model.EditAction;
import besouro.stream.ActionOutputStream;
diff --git a/test/besouro/listeners/WindowEventsTest.java b/test/besouro/listeners/WindowEventsTest.java
index 91447ed..da693fc 100644
--- a/test/besouro/listeners/WindowEventsTest.java
+++ b/test/besouro/listeners/WindowEventsTest.java
@@ -2,9 +2,8 @@
import java.util.ArrayList;
-import junit.framework.Assert;
-
import org.eclipse.core.resources.IFile;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import static org.mockito.Mockito.*;
diff --git a/test/besouro/listeners/mock/JUnitEventFactory.java b/test/besouro/listeners/mock/JUnitEventFactory.java
index 80f2797..bc4ad19 100644
--- a/test/besouro/listeners/mock/JUnitEventFactory.java
+++ b/test/besouro/listeners/mock/JUnitEventFactory.java
@@ -14,9 +14,6 @@
import org.eclipse.jdt.junit.model.ITestElementContainer;
import org.eclipse.jdt.junit.model.ITestRunSession;
import org.eclipse.jdt.junit.model.ITestSuiteElement;
-import org.mockito.ArgumentCaptor;
-import org.mockito.internal.matchers.Any;
-import org.mockito.internal.matchers.Equals;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
diff --git a/test/besouro/listeners/mock/JavaStructureChangeEventFactory.java b/test/besouro/listeners/mock/JavaStructureChangeEventFactory.java
index f158e91..75be5c3 100644
--- a/test/besouro/listeners/mock/JavaStructureChangeEventFactory.java
+++ b/test/besouro/listeners/mock/JavaStructureChangeEventFactory.java
@@ -2,18 +2,35 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.powermock.api.mockito.PowerMockito.mockStatic;
+import static org.mockito.Matchers.any;
+
+
+import java.io.File;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaElementDelta;
+
+
public class JavaStructureChangeEventFactory {
+
+ public static final int EDITED_FLAG = 540673;
+ public static final int METHOD_UPDATED_FLAG = 540680;
public static IJavaElement createJavaElement(IJavaElement parentElement, String resourceName, String elementName, int type) {
IJavaElement fromElement = mock(IJavaElement.class);
- IFile resource = ResourceChangeEventFactory.createMockResource(resourceName, (long)33);
+
+ IFile resource = createMockResource(resourceName, (long)33);
when(fromElement.getParent()).thenReturn(parentElement);
when(fromElement.toString()).thenReturn(elementName);
@@ -25,10 +42,11 @@ public static IJavaElement createJavaElement(IJavaElement parentElement, String
- public static IJavaElementDelta createJavaChangeDelta(IJavaElement element, int op_type) {
+ public static IJavaElementDelta createJavaChangeDelta(IJavaElement element, int op_type, int op_flag) {
IJavaElementDelta delta = mock(IJavaElementDelta.class);
when(delta.getElement()).thenReturn(element);
when(delta.getKind()).thenReturn(op_type);
+ when(delta.getFlags()).thenReturn(op_flag);
when(delta.getAffectedChildren()).thenReturn(new IJavaElementDelta[]{});
return delta;
}
@@ -36,10 +54,10 @@ public static IJavaElementDelta createJavaChangeDelta(IJavaElement element, int
public static ElementChangedEvent createAddMethodAction(String filename, String className, String methodName) {
IJavaElement classElement = JavaStructureChangeEventFactory.createJavaElement(null,filename,className,IJavaElement.CLASS_FILE);
- IJavaElementDelta delta = JavaStructureChangeEventFactory.createJavaChangeDelta(classElement,IJavaElementDelta.CHANGED);
+ IJavaElementDelta delta = JavaStructureChangeEventFactory.createJavaChangeDelta(classElement,IJavaElementDelta.CHANGED, -1);
IJavaElement addedElement = JavaStructureChangeEventFactory.createJavaElement(null,filename,className + "#" + methodName, IJavaElement.METHOD);
- IJavaElementDelta childDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(addedElement,IJavaElementDelta.ADDED);
+ IJavaElementDelta childDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(addedElement,IJavaElementDelta.ADDED, -1);
ElementChangedEvent event = mock(ElementChangedEvent.class);
@@ -54,9 +72,9 @@ public static ElementChangedEvent createRemoveMethodAction(String filename, Stri
IJavaElement classElement = JavaStructureChangeEventFactory.createJavaElement(null,filename,className,IJavaElement.CLASS_FILE);
IJavaElement addedElement = JavaStructureChangeEventFactory.createJavaElement(null,filename,className + "#" + methodName, IJavaElement.METHOD);
- IJavaElementDelta childDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(addedElement,IJavaElementDelta.REMOVED);
+ IJavaElementDelta childDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(addedElement,IJavaElementDelta.REMOVED, -1);
- IJavaElementDelta delta = JavaStructureChangeEventFactory.createJavaChangeDelta(classElement,IJavaElementDelta.CHANGED);
+ IJavaElementDelta delta = JavaStructureChangeEventFactory.createJavaChangeDelta(classElement,IJavaElementDelta.CHANGED, -1);
ElementChangedEvent event = mock(ElementChangedEvent.class);
when(delta.getAffectedChildren()).thenReturn(new IJavaElementDelta[]{childDelta});
@@ -71,11 +89,11 @@ public static ElementChangedEvent createRenameMethodEvent(String filename, Strin
IJavaElement renamedFromElement = JavaStructureChangeEventFactory.createJavaElement(parentElement,filename, classname + "#" + fromMethod, IJavaElement.FIELD);
IJavaElement renamedToElement = JavaStructureChangeEventFactory.createJavaElement(parentElement,filename, classname + "#" + toMethod, IJavaElement.FIELD);
- IJavaElementDelta removedDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(renamedFromElement, IJavaElementDelta.REMOVED);
- IJavaElementDelta addedDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(renamedToElement, IJavaElementDelta.ADDED);
+ IJavaElementDelta removedDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(renamedFromElement, IJavaElementDelta.REMOVED, -1);
+ IJavaElementDelta addedDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(renamedToElement, IJavaElementDelta.ADDED, -1);
- IJavaElementDelta classDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElement,IJavaElementDelta.CHANGED);
- IJavaElementDelta parentDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElement,IJavaElementDelta.CHANGED);
+ IJavaElementDelta classDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElement,IJavaElementDelta.CHANGED, -1);
+ IJavaElementDelta parentDelta = JavaStructureChangeEventFactory.createJavaChangeDelta(parentElement,IJavaElementDelta.CHANGED, -1);
ElementChangedEvent event = mock(ElementChangedEvent.class);
when(classDelta.getAffectedChildren()).thenReturn(new IJavaElementDelta[]{removedDelta, addedDelta});
@@ -85,4 +103,61 @@ public static ElementChangedEvent createRenameMethodEvent(String filename, Strin
return event;
}
+ public static ElementChangedEvent createEditMethodAction(String filename, int fileSize) throws CoreException {
+ IJavaElement classElement = JavaStructureChangeEventFactory.createJavaElement(null,filename,null,IJavaElement.CLASS_FILE);
+ IJavaElementDelta delta = JavaStructureChangeEventFactory.createJavaChangeDelta(classElement,IJavaElementDelta.CHANGED, EDITED_FLAG);
+
+ ElementChangedEvent event = mock(ElementChangedEvent.class);
+ when(event.getDelta()).thenReturn(delta);
+
+ return event;
+ }
+
+ public static IFile createMockResource(String filename, long fileSIze) {
+
+ String[] split = filename.split("\\.");
+
+ IFile resource = mock(IFile.class);
+
+ IPath path = mock(IPath.class);
+ when(path.toString()).thenReturn(filename);
+
+ File file = mock(File.class);
+ when(file.getName()).thenReturn(filename);
+ when(file.getPath()).thenReturn(filename);
+ when(file.length()).thenReturn(fileSIze);
+
+ when(path.toFile()).thenReturn(file);
+
+ if (split.length>1)
+ when(path.getFileExtension()).thenReturn(split[1]);
+
+ when(resource.getLocation()).thenReturn(path);
+
+ // separates "filename" of ".java"
+ when(resource.getName()).thenReturn(filename);
+
+ if (split.length>1)
+ when(resource.getFileExtension()).thenReturn(split[1]);
+
+ when(resource.getFullPath()).thenReturn(path);
+
+ return resource;
+ }
+
+ public static void eclipseMock(String filename, long fileSIze) {
+ mockStatic(ResourcesPlugin.class);
+
+ IWorkspace workspace = mock(IWorkspace.class);
+ when(ResourcesPlugin.getWorkspace()).thenReturn(workspace);
+
+ IWorkspaceRoot workspaceRoot = mock(IWorkspaceRoot.class);
+ when(workspace.getRoot()).thenReturn(workspaceRoot);
+
+ IPath workspaceRootLocation = mock(IPath.class);
+ when(workspaceRoot.getLocation()).thenReturn(workspaceRootLocation);
+
+ IFile file = createMockResource(filename, (long)fileSIze);
+ when(workspaceRoot.getFile(any(Path.class))).thenReturn(file);
+ }
}
diff --git a/test/besouro/listeners/mock/ResourceChangeEventFactory.java b/test/besouro/listeners/mock/ResourceChangeEventFactory.java
index 1db7331..ea467b1 100644
--- a/test/besouro/listeners/mock/ResourceChangeEventFactory.java
+++ b/test/besouro/listeners/mock/ResourceChangeEventFactory.java
@@ -18,8 +18,6 @@
import org.eclipse.jdt.core.dom.PackageDeclaration;
import org.eclipse.jdt.core.dom.SimpleName;
import org.eclipse.jdt.core.dom.TypeDeclaration;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
public class ResourceChangeEventFactory {
diff --git a/test/besouro/persistence/ActionFileStorageTest.java b/test/besouro/persistence/ActionFileStorageTest.java
index 04eb52e..f1733a1 100644
--- a/test/besouro/persistence/ActionFileStorageTest.java
+++ b/test/besouro/persistence/ActionFileStorageTest.java
@@ -5,17 +5,17 @@
import java.text.SimpleDateFormat;
import java.util.Date;
-import junit.framework.Assert;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.ui.views.navigator.RefactorActionGroup;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
import besouro.classification.zorro.ZorroEpisodeClassifierStream;
import besouro.integration.TestFirstRecognition;
-import besouro.listeners.mock.ResourceChangeEventFactory;
import besouro.model.Action;
import besouro.model.CompilationAction;
import besouro.model.EditAction;
@@ -28,6 +28,8 @@
import besouro.model.UnitTestSessionAction;
import besouro.persistence.ActionFileStorage;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ResourcesPlugin.class)
public class ActionFileStorageTest {
private File file;
diff --git a/test/besouro/persistence/EpisodeFileStorageTest.java b/test/besouro/persistence/EpisodeFileStorageTest.java
index eaf5d79..ba046b5 100644
--- a/test/besouro/persistence/EpisodeFileStorageTest.java
+++ b/test/besouro/persistence/EpisodeFileStorageTest.java
@@ -1,14 +1,12 @@
package besouro.persistence;
import java.io.File;
-import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import junit.framework.Assert;
-
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/persistence/GitRecorderTest.java b/test/besouro/persistence/GitRecorderTest.java
index 28ab3bc..5f8f951 100644
--- a/test/besouro/persistence/GitRecorderTest.java
+++ b/test/besouro/persistence/GitRecorderTest.java
@@ -10,15 +10,11 @@
import org.eclipse.jgit.api.CommitCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.util.Base64;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.exceptions.verification.NeverWantedButInvoked;
-import org.mockito.verification.VerificationMode;
import besouro.model.EditAction;
-import besouro.model.UnitTestAction;
import besouro.model.UnitTestCaseAction;
public class GitRecorderTest {
diff --git a/test/besouro/persistence/JGitTest.java b/test/besouro/persistence/JGitTest.java
index 39bac94..eacfe13 100644
--- a/test/besouro/persistence/JGitTest.java
+++ b/test/besouro/persistence/JGitTest.java
@@ -2,8 +2,6 @@
import java.io.File;
-import junit.framework.Assert;
-
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
@@ -11,6 +9,7 @@
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/plugin/ProgrammingSessionTest.java b/test/besouro/plugin/ProgrammingSessionTest.java
index bcf3fe8..a76b7e1 100644
--- a/test/besouro/plugin/ProgrammingSessionTest.java
+++ b/test/besouro/plugin/ProgrammingSessionTest.java
@@ -7,9 +7,8 @@
import java.io.File;
import java.util.Date;
-import junit.framework.Assert;
-
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/besouro/stream/EpisodeDurationTest.java b/test/besouro/stream/EpisodeDurationTest.java
index 391623c..12d7443 100644
--- a/test/besouro/stream/EpisodeDurationTest.java
+++ b/test/besouro/stream/EpisodeDurationTest.java
@@ -4,17 +4,13 @@
import static org.mockito.Mockito.when;
import java.util.Date;
-import java.util.List;
-
-import junit.framework.Assert;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import besouro.classification.zorro.ZorroEpisodeClassifierStream;
-import besouro.listeners.mock.ResourceChangeEventFactory;
import besouro.measure.JavaStatementMeter;
import besouro.model.EditAction;
import besouro.model.Episode;
diff --git a/test/besouro/stream/JavaActionsLinkerTest.java b/test/besouro/stream/JavaActionsLinkerTest.java
index 3ec7428..f160d88 100644
--- a/test/besouro/stream/JavaActionsLinkerTest.java
+++ b/test/besouro/stream/JavaActionsLinkerTest.java
@@ -1,20 +1,11 @@
package besouro.stream;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.io.File;
import java.util.Date;
-import junit.framework.Assert;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import besouro.listeners.mock.ResourceChangeEventFactory;
import besouro.model.EditAction;
import besouro.model.FileOpenedAction;