/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.java.ast;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Set;
import org.junit.Test;
import net.sourceforge.pmd.lang.java.ParserTst;
public class AccessNodeTest extends ParserTst {
public static class MyAccessNode extends AbstractJavaAccessNode {
public MyAccessNode(int i) {
super(i);
}
public MyAccessNode(JavaParser parser, int i) {
super(parser, i);
}
}
@Test
public void testModifiersOnClassDecl() {
Set<ASTClassOrInterfaceDeclaration> ops = getNodes(ASTClassOrInterfaceDeclaration.class, TEST1);
assertTrue(ops.iterator().next().isPublic());
}
private static final String TEST1 = "public class Foo {}";
@Test
public void testStatic() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not static.", node.isStatic());
node.setStatic(true);
assertTrue("Node set to static, not static.", node.isStatic());
}
@Test
public void testPublic() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not public.", node.isPublic());
node.setPublic(true);
assertTrue("Node set to public, not public.", node.isPublic());
}
@Test
public void testProtected() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not protected.", node.isProtected());
node.setProtected(true);
assertTrue("Node set to protected, not protected.", node.isProtected());
}
@Test
public void testPrivate() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not private.", node.isPrivate());
node.setPrivate(true);
assertTrue("Node set to private, not private.", node.isPrivate());
}
@Test
public void testFinal() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not final.", node.isFinal());
node.setFinal(true);
assertTrue("Node set to final, not final.", node.isFinal());
}
@Test
public void testSynchronized() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not synchronized.", node.isSynchronized());
node.setSynchronized(true);
assertTrue("Node set to synchronized, not synchronized.", node.isSynchronized());
}
@Test
public void testVolatile() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not volatile.", node.isVolatile());
node.setVolatile(true);
assertTrue("Node set to volatile, not volatile.", node.isVolatile());
}
@Test
public void testTransient() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not transient.", node.isTransient());
node.setTransient(true);
assertTrue("Node set to transient, not transient.", node.isTransient());
}
@Test
public void testNative() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not native.", node.isNative());
node.setNative(true);
assertTrue("Node set to native, not native.", node.isNative());
}
@Test
public void testAbstract() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not abstract.", node.isAbstract());
node.setAbstract(true);
assertTrue("Node set to abstract, not abstract.", node.isAbstract());
}
@Test
public void testStrict() {
AccessNode node = new MyAccessNode(1);
assertFalse("Node should default to not strict.", node.isStrictfp());
node.setStrictfp(true);
assertTrue("Node set to strict, not strict.", node.isStrictfp());
}
@Test
public void testPackagePrivate() {
AccessNode node = new MyAccessNode(1);
assertTrue("Node should default to package private.", node.isPackagePrivate());
node.setPrivate(true);
assertFalse("Node set to private, still package private.", node.isPackagePrivate());
node = new MyAccessNode(1);
node.setPublic(true);
assertFalse("Node set to public, still package private.", node.isPackagePrivate());
node = new MyAccessNode(1);
node.setProtected(true);
assertFalse("Node set to protected, still package private.", node.isPackagePrivate());
}
}