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.ast.JavaQualifiedName;
|
||||||
import net.sourceforge.pmd.lang.java.multifile.signature.JavaFieldSigMask;
|
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.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.signature.JavaSignature.Visibility;
|
||||||
import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData;
|
|
||||||
import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData2;
|
import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,7 +44,7 @@ public class JavaMultifileVisitorTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOperationsAreThere() {
|
public void testOperationsAreThere() {
|
||||||
ASTCompilationUnit acu = parseAndVisitForClass(MultifileVisitorTestData.class);
|
ASTCompilationUnit acu = parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||||
|
|
||||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||||
|
|
||||||
@ -63,13 +63,13 @@ public class JavaMultifileVisitorTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFieldsAreThere() {
|
public void testFieldsAreThere() {
|
||||||
parseAndVisitForClass(MultifileVisitorTestData.class);
|
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||||
|
|
||||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||||
|
|
||||||
final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask();
|
final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask();
|
||||||
|
|
||||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData.class);
|
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||||
|
|
||||||
String[] fieldNames = {"x", "y", "z", "t"};
|
String[] fieldNames = {"x", "y", "z", "t"};
|
||||||
Visibility[] visibilities = {Visibility.PUBLIC, Visibility.PRIVATE, Visibility.PROTECTED, Visibility.PACKAGE};
|
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
|
@Test
|
||||||
public void testBothClassesFieldsAreThere() {
|
public void testBothClassesFieldsAreThere() {
|
||||||
parseAndVisitForClass(MultifileVisitorTestData.class);
|
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||||
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
parseAndVisitForClass(MultifileVisitorTestData2.class);
|
||||||
|
|
||||||
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
final ProjectMirror toplevel = PackageStats.INSTANCE;
|
||||||
|
|
||||||
final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask();
|
final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask();
|
||||||
|
|
||||||
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData.class);
|
JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||||
JavaQualifiedName clazz2 = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
JavaQualifiedName clazz2 = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class);
|
||||||
|
|
||||||
String[] fieldNames1 = {"x", "y", "z", "t"};
|
String[] fieldNames = {"x", "y", "z", "t"};
|
||||||
String[] fieldNames2 = {"x2", "y2", "z2", "t2"};
|
|
||||||
Visibility[] visibilities = {Visibility.PUBLIC, Visibility.PRIVATE, Visibility.PROTECTED, Visibility.PACKAGE};
|
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]);
|
fieldSigMask.restrictVisibilitiesTo(visibilities[i]);
|
||||||
assertTrue(toplevel.hasMatchingSig(clazz, fieldNames1[i], fieldSigMask));
|
assertTrue(toplevel.hasMatchingSig(clazz, fieldNames[i], fieldSigMask));
|
||||||
assertTrue(toplevel.hasMatchingSig(clazz2, fieldNames2[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 class MultifileVisitorTestData2 {
|
||||||
|
|
||||||
public String x2;
|
public String x;
|
||||||
protected String z2;
|
private String y;
|
||||||
String t2;
|
protected String z;
|
||||||
private String y2;
|
String t;
|
||||||
|
|
||||||
|
|
||||||
public MultifileVisitorTestData2() {
|
public MultifileVisitorTestData2() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private MultifileVisitorTestData2(String x) {
|
private MultifileVisitorTestData2(String x) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getX() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
public String getX2() {
|
public String getY() {
|
||||||
return x2;
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setX(String n) {
|
||||||
|
x = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setY(String n) {
|
||||||
|
y = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getY2() {
|
public static class NestedClass {
|
||||||
return y2;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public 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 void nestedMethod1() {
|
||||||
public void nestedMethod12() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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