@Test public void test() { final UserImpl user = new UserImpl("andrey"); final UserImpl admin = new UserImpl("admin"); final UserImpl mannheim = new UserImpl("mannheim"); user.getParents().add(admin); user.getParents().add(mannheim); final OperationImpl read = new OperationImpl("read"); final OperationImpl operation = new OperationImpl("op"); read.getParents().add(operation); final ResourceImpl doc = new ResourceImpl("document"); final ResourceImpl resource = new ResourceImpl("resource"); doc.getParents().add(resource); final RuleSetImpl rules = new RuleSetImpl(); rules.allow(admin, read, doc); final Rule rule = new Rule(user, read, doc, rules); final Collection<Rule> parents = rule.getParents(); assertEquals(4, parents.size()); final EvaluationStrategy eval = new BasicEvaluation(); assertTrue(rule.value(eval)); }