assertTrue(root.canAccess(rwUser, AccessMode.READ));
assertTrue(root.canAccess(rwUser, AccessMode.WRITE));
}
public void testComplex() throws Exception {
SecureTreeNode root = buildTree("complex.properties");
// first off, evaluate tree structure
assertEquals(2, root.children.size());
SecureTreeNode topp = root.getChild("topp");
assertNotNull(topp);
assertEquals(3, topp.children.size());
SecureTreeNode states = topp.getChild("states");
SecureTreeNode landmarks = topp.getChild("landmarks");
SecureTreeNode bases = topp.getChild("bases");
assertNotNull(states);
assertNotNull(landmarks);
assertNotNull(bases);
// perform some checks with anonymous access
assertFalse(root.canAccess(anonymous, AccessMode.READ));
assertFalse(root.canAccess(anonymous, AccessMode.WRITE));
assertTrue(topp.canAccess(anonymous, AccessMode.READ));
assertFalse(states.canAccess(anonymous, AccessMode.READ));
assertTrue(landmarks.canAccess(anonymous, AccessMode.READ));
assertFalse(landmarks.canAccess(anonymous, AccessMode.WRITE));
assertFalse(bases.canAccess(anonymous, AccessMode.READ));
// perform some checks with read only access
assertTrue(root.canAccess(roUser, AccessMode.READ));
assertFalse(root.canAccess(roUser, AccessMode.WRITE));
assertTrue(topp.canAccess(roUser, AccessMode.READ));
assertTrue(states.canAccess(roUser, AccessMode.READ));
assertTrue(landmarks.canAccess(roUser, AccessMode.READ));
assertFalse(landmarks.canAccess(roUser, AccessMode.WRITE));
assertFalse(bases.canAccess(roUser, AccessMode.READ));
// perform some checks with read write access
assertTrue(root.canAccess(rwUser, AccessMode.READ));
assertFalse(root.canAccess(rwUser, AccessMode.WRITE));
assertTrue(topp.canAccess(rwUser, AccessMode.READ));
assertTrue(states.canAccess(rwUser, AccessMode.WRITE));
assertTrue(landmarks.canAccess(rwUser, AccessMode.READ));
assertTrue(landmarks.canAccess(rwUser, AccessMode.WRITE));
assertFalse(bases.canAccess(rwUser, AccessMode.READ));
// military access... just access the one layer, for the rest he's like anonymous
assertFalse(root.canAccess(milUser, AccessMode.READ));
assertFalse(root.canAccess(milUser, AccessMode.WRITE));
assertTrue(topp.canAccess(milUser, AccessMode.READ));
assertFalse(states.canAccess(milUser, AccessMode.WRITE));
assertTrue(landmarks.canAccess(milUser, AccessMode.READ));
assertFalse(landmarks.canAccess(milUser, AccessMode.WRITE));
assertTrue(bases.canAccess(milUser, AccessMode.READ));
assertTrue(bases.canAccess(milUser, AccessMode.WRITE));
}