forked from phoedos/pmd
Add test case for operations
This commit is contained in:
@ -18,8 +18,8 @@ import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter;
|
||||
import net.sourceforge.pmd.lang.java.ast.JavaQualifiedName;
|
||||
import net.sourceforge.pmd.lang.java.multifile.signature.JavaFieldSigMask;
|
||||
import net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSigMask;
|
||||
import net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSignature.Role;
|
||||
import net.sourceforge.pmd.lang.java.multifile.signature.JavaSignature.Visibility;
|
||||
import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData;
|
||||
import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData2;
|
||||
|
||||
/**
|
||||
@ -44,7 +44,7 @@ public class JavaMultifileVisitorTest {
|
||||
|
||||
@Test
|
||||
public void testOperationsAreThere() {
|
||||
ASTCompilationUnit acu = parseAndVisitForClass(MultifileVisitorTestData.class);
|
||||
ASTCompilationUnit acu = parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||
|
||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||
|
||||
@ -63,13 +63,13 @@ public class JavaMultifileVisitorTest {
|
||||
|
||||
@Test
|
||||
public void testFieldsAreThere() {
|
||||
parseAndVisitForClass(MultifileVisitorTestData.class);
|
||||
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||
|
||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||
|
||||
final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask();
|
||||
|
||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData.class);
|
||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||
|
||||
String[] fieldNames = {"x", "y", "z", "t"};
|
||||
Visibility[] visibilities = {Visibility.PUBLIC, Visibility.PRIVATE, Visibility.PROTECTED, Visibility.PACKAGE};
|
||||
@ -81,27 +81,56 @@ public class JavaMultifileVisitorTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testBothClassesOperationsAreThere() {
|
||||
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||
|
||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||
|
||||
final JavaOperationSigMask operationSigMask = new JavaOperationSigMask();
|
||||
|
||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||
JavaQualifiedName clazz2 = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||
|
||||
String[] opNames = {"getX()", "getY()", "setX(String)", "setY(String)",
|
||||
"mymethod1()", "mymethod2()", "mystatic1()",
|
||||
"mystatic2(String)", "mystatic2(String, String)"};
|
||||
Role[] roles = {Role.GETTER_OR_SETTER, Role.GETTER_OR_SETTER, Role.GETTER_OR_SETTER, Role.GETTER_OR_SETTER,
|
||||
Role.METHOD, Role.METHOD, Role.STATIC, Role.STATIC, Role.STATIC};
|
||||
|
||||
|
||||
for (int i = 0; i < opNames.length; i++) {
|
||||
operationSigMask.restrictRolesTo(roles[i]);
|
||||
JavaQualifiedName name1 = JavaQualifiedName.ofString(clazz.toString() + "#" + opNames[i]);
|
||||
JavaQualifiedName name2 = JavaQualifiedName.ofString(clazz2.toString() + "#" + opNames[i]);
|
||||
|
||||
assertTrue(toplevel.hasMatchingSig(name1, operationSigMask));
|
||||
assertTrue(toplevel.hasMatchingSig(name2, operationSigMask));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testBothClassesFieldsAreThere() {
|
||||
parseAndVisitForClass(MultifileVisitorTestData.class);
|
||||
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||
|
||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||
|
||||
final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask();
|
||||
|
||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData.class);
|
||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||
JavaQualifiedName clazz2 = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||
|
||||
String[] fieldNames1 = {"x", "y", "z", "t"};
|
||||
String[] fieldNames2 = {"x2", "y2", "z2", "t2"};
|
||||
String[] fieldNames = {"x", "y", "z", "t"};
|
||||
Visibility[] visibilities = {Visibility.PUBLIC, Visibility.PRIVATE, Visibility.PROTECTED, Visibility.PACKAGE};
|
||||
|
||||
|
||||
for (int i = 0; i < fieldNames1.length; i++) {
|
||||
for (int i = 0; i < fieldNames.length; i++) {
|
||||
fieldSigMask.restrictVisibilitiesTo(visibilities[i]);
|
||||
assertTrue(toplevel.hasMatchingSig(clazz, fieldNames1[i], fieldSigMask));
|
||||
assertTrue(toplevel.hasMatchingSig(clazz2, fieldNames2[i], fieldSigMask));
|
||||
assertTrue(toplevel.hasMatchingSig(clazz, fieldNames[i], fieldSigMask));
|
||||
assertTrue(toplevel.hasMatchingSig(clazz2, fieldNames[i], fieldSigMask));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,77 +11,65 @@ package net.sourceforge.pmd.lang.java.multifile.testdata;
|
||||
*/
|
||||
public class MultifileVisitorTestData2 {
|
||||
|
||||
public String x2;
|
||||
protected String z2;
|
||||
String t2;
|
||||
private String y2;
|
||||
|
||||
public String x;
|
||||
private String y;
|
||||
protected String z;
|
||||
String t;
|
||||
|
||||
public MultifileVisitorTestData2() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private MultifileVisitorTestData2(String x) {
|
||||
|
||||
}
|
||||
|
||||
public String getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public String getX2() {
|
||||
return x2;
|
||||
public String getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public void setX(String n) {
|
||||
x = n;
|
||||
}
|
||||
|
||||
public void setY(String n) {
|
||||
y = n;
|
||||
}
|
||||
|
||||
|
||||
public String getY2() {
|
||||
return y2;
|
||||
}
|
||||
public static class NestedClass {
|
||||
|
||||
|
||||
public void setX2(String n) {
|
||||
x2 = n;
|
||||
}
|
||||
|
||||
|
||||
public void setY2(String n) {
|
||||
y2 = n;
|
||||
}
|
||||
|
||||
|
||||
public void mymethod12() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void mymethod22() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected static void mystatic12() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static void mystatic22(String k) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static void mystatic22(String k, String l) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class NestedClass2 {
|
||||
|
||||
public NestedClass2() {
|
||||
public NestedClass() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void nestedMethod12() {
|
||||
public void nestedMethod1() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void mymethod1() {
|
||||
|
||||
}
|
||||
|
||||
private void mymethod2() {
|
||||
|
||||
}
|
||||
|
||||
protected static void mystatic1() {
|
||||
|
||||
}
|
||||
|
||||
private static void mystatic2(String k) {
|
||||
|
||||
}
|
||||
|
||||
private static void mystatic2(String k, String l) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user