Skip to content

Commit 54b1a6d

Browse files
committed
Add new comment mapping tests
1 parent 7310eb7 commit 54b1a6d

13 files changed

+3401
-695
lines changed

src/main/java/gr/uom/java/xmi/UMLCommentGroup.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public UMLCommentListDiff modifiedMatchingText(UMLCommentGroup other) {
7474
}
7575
else if(this.group.size() != other.group.size() && this.group.size() > 0) {
7676
UMLCommentListDiff diff = new UMLCommentListDiff(this, other);
77-
if(diff.isManyToManyReformat() && diff.getDeletedComments().isEmpty() && diff.getAddedComments().isEmpty()) {
77+
if(diff.isManyToManyReformatWithIdenticalText() && diff.getDeletedComments().isEmpty() && diff.getAddedComments().isEmpty()) {
7878
return diff;
7979
}
8080
}

src/main/java/gr/uom/java/xmi/diff/UMLCommentListDiff.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class UMLCommentListDiff {
2323
private List<UMLComment> deletedComments;
2424
private List<UMLComment> addedComments;
2525
private boolean manyToManyReformat;
26+
private boolean manyToManyReformatWithIdenticalText;
2627
private Set<AbstractCodeMapping> mappings;
2728
private UMLOperationBodyMapper operationBodyMapper;
2829
private UMLAbstractClassDiff classDiff;
@@ -582,6 +583,7 @@ private void processModifiedComments(UMLCommentGroup groupBefore, UMLCommentGrou
582583
}
583584
if(deletedComments.size() >= 1 && addedComments.size() >= 1) {
584585
manyToManyReformat = true;
586+
manyToManyReformatWithIdenticalText = true;
585587
}
586588
}
587589
else {
@@ -863,4 +865,8 @@ public List<UMLComment> getAddedComments() {
863865
public boolean isManyToManyReformat() {
864866
return manyToManyReformat;
865867
}
868+
869+
public boolean isManyToManyReformatWithIdenticalText() {
870+
return manyToManyReformatWithIdenticalText;
871+
}
866872
}

src/test/java/org/refactoringminer/test/TestJavadocDiff.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
import java.io.FileReader;
55
import java.util.ArrayList;
66
import java.util.LinkedHashMap;
7+
import java.util.LinkedHashSet;
78
import java.util.List;
89
import java.util.Map;
910
import java.util.Set;
1011
import java.util.concurrent.ConcurrentHashMap;
1112

13+
import org.apache.commons.io.FileUtils;
1214
import org.apache.commons.io.IOUtils;
1315
import org.apache.commons.lang3.tuple.Pair;
1416
import org.junit.jupiter.api.Assertions;
@@ -26,6 +28,7 @@
2628
import gr.uom.java.xmi.diff.ExtractOperationRefactoring;
2729
import gr.uom.java.xmi.diff.InlineOperationRefactoring;
2830
import gr.uom.java.xmi.diff.UMLClassDiff;
31+
import gr.uom.java.xmi.diff.UMLModelDiff;
2932

3033
public class TestJavadocDiff {
3134
private static final String REPOS = System.getProperty("user.dir") + "/src/test/resources/oracle/commits";
@@ -118,6 +121,34 @@ public void testMethodCommentMappings(String url, String commitId, String classN
118121
Assertions.assertTrue(expected.size() == actual.size() && expected.containsAll(actual) && actual.containsAll(expected));
119122
}
120123

124+
@ParameterizedTest
125+
@CsvSource({
126+
"GroupTreeViewModel-v1.txt, GroupTreeViewModel-v2.txt, jabgui/src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java, jabRef-GroupTreeViewModel-716.txt",
127+
"GroupNodeViewModel-v1.txt, GroupNodeViewModel-v2.txt, jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java, jabRef-GroupNodeViewModel-716.txt",
128+
"NewEntryAction-v1.txt, NewEntryAction-v2.txt, jabgui/src/main/java/org/jabref/gui/importer/NewEntryAction.java, jabRef-NewEntryAction-716.txt"
129+
})
130+
public void testMethodCommentMappings(String filePath1, String filePath2, String qualifiedName, String testResultFileName) throws Exception {
131+
final List<String> actual = new ArrayList<>();
132+
Map<String, String> fileContentsBefore = new LinkedHashMap<String, String>();
133+
Map<String, String> fileContentsCurrent = new LinkedHashMap<String, String>();
134+
String contentsV1 = FileUtils.readFileToString(new File(EXPECTED_PATH + filePath1));
135+
String contentsV2 = FileUtils.readFileToString(new File(EXPECTED_PATH + filePath2));
136+
fileContentsBefore.put(qualifiedName, contentsV1);
137+
fileContentsCurrent.put(qualifiedName, contentsV2);
138+
UMLModel parentUMLModel = GitHistoryRefactoringMinerImpl.createModel(fileContentsBefore, new LinkedHashSet<String>());
139+
UMLModel currentUMLModel = GitHistoryRefactoringMinerImpl.createModel(fileContentsCurrent, new LinkedHashSet<String>());
140+
141+
UMLModelDiff modelDiff = parentUMLModel.diff(currentUMLModel);
142+
List<UMLClassDiff> commonClassDiff = modelDiff.getCommonClassDiffList();
143+
for(UMLClassDiff classDiff : commonClassDiff) {
144+
for(UMLOperationBodyMapper mapper : classDiff.getOperationBodyMapperList()) {
145+
commentInfo(mapper, actual);
146+
}
147+
}
148+
List<String> expected = IOUtils.readLines(new FileReader(EXPECTED_PATH + testResultFileName));
149+
Assertions.assertTrue(expected.size() == actual.size() && expected.containsAll(actual) && actual.containsAll(expected));
150+
}
151+
121152
@ParameterizedTest
122153
@CsvSource({
123154
"https://github.com/jOOQ/jOOQ.git, 58a4e74d28073e7c6f15d1f225ac1c2fd9aa4357, org.jooq.tools.Convert.ConvertAll, jOOQ-58a4e74d28073e7c6f15d1f225ac1c2fd9aa4357-comments.txt",

0 commit comments

Comments
 (0)