use of net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSigMask in project pmd by pmd.
the class SigMaskTest method testOperationVisibility.
@Test
public void testOperationVisibility() {
List<ASTMethodOrConstructorDeclaration> nodes = getOrderedNodes(ASTMethodOrConstructorDeclaration.class, TEST_OPERATIONS);
JavaOperationSigMask mask = new JavaOperationSigMask();
mask.coverAbstract();
mask.restrictVisibilitiesTo(Visibility.PUBLIC);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node.isPublic()) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
mask.restrictVisibilitiesTo(Visibility.PRIVATE);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node.isPrivate()) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
mask.restrictVisibilitiesTo(Visibility.PACKAGE);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node.isPackagePrivate()) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
mask.restrictVisibilitiesTo(Visibility.PROTECTED);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node.isProtected()) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
}
use of net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSigMask in project pmd by pmd.
the class SigMaskTest method testOperationRoles.
@Test
public void testOperationRoles() {
List<ASTMethodOrConstructorDeclaration> nodes = getOrderedNodes(ASTMethodOrConstructorDeclaration.class, TEST_OPERATIONS);
JavaOperationSigMask mask = new JavaOperationSigMask();
mask.restrictRolesTo(Role.STATIC);
mask.coverAbstract();
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node.isStatic()) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
mask.restrictRolesTo(Role.CONSTRUCTOR);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node instanceof ASTConstructorDeclaration) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
mask.restrictRolesTo(Role.GETTER_OR_SETTER);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node instanceof ASTMethodDeclaration && ((ASTMethodDeclaration) node).getMethodName().matches("(get|set).*")) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
mask.restrictRolesTo(Role.METHOD);
for (ASTMethodOrConstructorDeclaration node : nodes) {
if (node instanceof ASTMethodDeclaration && !node.isStatic() && !((ASTMethodDeclaration) node).getMethodName().matches("(get|set).*")) {
assertTrue(mask.covers(JavaOperationSignature.buildFor(node)));
} else {
assertFalse(mask.covers(JavaOperationSignature.buildFor(node)));
}
}
}
use of net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSigMask in project pmd by pmd.
the class PackageStatsTest method testAddOperation.
@Test
public void testAddOperation() {
final String TEST = "package org.foo; class Boo{ " + "public void foo(){}}";
ASTMethodOrConstructorDeclaration node = getOrderedNodes(ASTMethodDeclaration.class, TEST).get(0);
JavaOperationQualifiedName qname = node.getQualifiedName();
JavaOperationSignature signature = JavaOperationSignature.buildFor(node);
assertFalse(pack.hasMatchingSig(qname, new JavaOperationSigMask()));
ClassStats clazz = pack.getClassStats(qname.getClassName(), true);
clazz.addOperation("foo()", signature);
assertTrue(pack.hasMatchingSig(qname, new JavaOperationSigMask()));
}
Aggregations