public void testAny() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { /* any */ } }); assertSameElements(result, authorizables.iterator()); }
public void testSelector() throws RepositoryException { List<Class<? extends Authorizable>> selectors = new ArrayList<Class<? extends Authorizable>>(); selectors.add(Authorizable.class); selectors.add(Group.class); selectors.add(User.class); for (final Class<? extends Authorizable> s : selectors) { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setSelector(s); } }); if (User.class.isAssignableFrom(s)) { assertSameElements(result, users.iterator()); } else if (Group.class.isAssignableFrom(s)) { assertSameElements(result, groups.iterator()); } else { assertSameElements(result, authorizables.iterator()); } } }
public void testContains3() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. contains("profile/.", "grass")); } }); Iterator<User> expected = Iterators.singleton(kangaroo); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testContains2() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. contains("@color", "gold")); } }); Iterator<User> expected = Iterators.singleton(goldenToad); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testContains1() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. contains(".", "gold")); } }); Iterator<User> expected = Iterators.singleton(goldenToad); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testContains4() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. contains("profile/@food", "grass")); } }); Iterator<User> expected = Iterators.singleton(kangaroo); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testImpersonation() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. impersonates("jackrabbit")); } }); Iterator<User> expected = Iterators.singleton(elephant); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testDirectScope() throws RepositoryException { Group[] groups = new Group[]{mammals, vertebrates, apes}; for (final Group g : groups) { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { try { builder.setScope(g.getID(), true); } catch (RepositoryException e) { fail(e.getMessage()); } } }); Iterator<Authorizable> members = g.getDeclaredMembers(); assertSameElements(result, members); } }
public void testIndirectScope() throws RepositoryException { Group[] groups = new Group[]{mammals, vertebrates, apes}; for (final Group g : groups) { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { try { builder.setScope(g.getID(), false); } catch (RepositoryException e) { fail(e.getMessage()); } } }); Iterator<Authorizable> members = g.getMembers(); assertSameElements(result, members); } }
public void testNameMatch() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder.nameMatches("a%")); } }); Iterator<Authorizable> expected = Iterators.filterIterator(authorizables.iterator(), new Predicate<Authorizable>() { public boolean evaluate(Authorizable authorizable) { try { String name = authorizable.getID(); Principal principal = authorizable.getPrincipal(); return name.startsWith("a") || principal != null && principal.getName().startsWith("a"); } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testFindProperty1() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. eq("@canFly", vf.createValue(true))); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] canFly = user.getProperty("canFly"); return canFly != null && canFly.length == 1 && canFly[0].getBoolean(); } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testFindProperty3() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. eq("@numberOfLegs", vf.createValue(8))); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] numberOfLegs = user.getProperty("numberOfLegs"); return numberOfLegs != null && numberOfLegs.length == 1 && numberOfLegs[0].getLong() == 8; } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testPropertyExistence() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. exists("@poisonous")); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] poisonous = user.getProperty("poisonous"); return poisonous != null && poisonous.length == 1; } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testFindProperty2() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. gt("profile/@weight", vf.createValue(2000.0))); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] weight = user.getProperty("profile/weight"); return weight != null && weight.length == 1 && weight[0].getDouble() > 2000.0; } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testCondition2() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. or(builder. eq("profile/@food", vf.createValue("mice")), builder. eq("profile/@food", vf.createValue("nectar")))); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] food = user.getProperty("profile/food"); return food != null && food.length == 1 && (food[0].getString().equals("mice") || food[0].getString().equals("nectar")); } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testScopeWithMax() throws RepositoryException { final int offset = 0; final int count = 22; Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setScope("vertebrates", false); builder.setSortOrder("profile/@weight", Direction.ASCENDING); builder.setLimit(offset, count); } }); Iterator<Authorizable> expected = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setScope("vertebrates", false); builder.setSortOrder("profile/@weight", Direction.ASCENDING); } }); assertSameElements(expected, result); assertFalse(result.hasNext()); }
public void testCondition1() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. and(builder. eq("profile/@cute", vf.createValue(true)), builder. not(builder. eq("@color", vf.createValue("black"))))); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] cute = user.getProperty("profile/cute"); Value[] black = user.getProperty("color"); return cute != null && cute.length == 1 && cute[0].getBoolean() && !(black != null && black.length == 1 && black[0].getString().equals("black")); } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testPropertyLike() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. like("profile/@food", "m%")); } }); Iterator<User> expected = Iterators.filterIterator(users.iterator(), new Predicate<User>() { public boolean evaluate(User user) { try { Value[] food = user.getProperty("profile/food"); if (food == null || food.length != 1) { return false; } else { String value = food[0].getString(); return value.startsWith("m"); } } catch (RepositoryException e) { fail(e.getMessage()); } return false; } }); assertTrue(result.hasNext()); assertSameElements(result, expected); }
public void testFindUsersInGroup() throws RepositoryException { Group[] groups = new Group[]{mammals, vertebrates, apes}; for (final Group g : groups) { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { try { builder.setSelector(User.class); builder.setScope(g.getID(), false); } catch (RepositoryException e) { fail(e.getMessage()); } } }); Iterator<Authorizable> members = g.getMembers(); Iterator<Authorizable> users = Iterators.filterIterator(members, new Predicate<Authorizable>() { public boolean evaluate(Authorizable authorizable) { return !authorizable.isGroup(); } }); assertSameElements(result, users); } }
public void testFindGroupsInGroup() throws RepositoryException { Group[] groups = new Group[]{mammals, vertebrates, apes}; for (final Group g : groups) { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { try { builder.setSelector(Group.class); builder.setScope(g.getID(), true); } catch (RepositoryException e) { fail(e.getMessage()); } } }); Iterator<Authorizable> members = g.getDeclaredMembers(); Iterator<Authorizable> users = Iterators.filterIterator(members, new Predicate<Authorizable>() { public boolean evaluate(Authorizable authorizable) { return authorizable.isGroup(); } }); assertSameElements(result, users); } }