private static <T> void assertSame(Iterator<? extends T> expected, Iterator<? extends T> actual, long count) { for (int k = 0; k < count && actual.hasNext(); k++) { assertTrue(expected.hasNext()); assertEquals(expected.next(), actual.next()); } }
public void testSortOrder1() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. exists("@color")); builder.setSortOrder("@color", Direction.DESCENDING); } }); assertTrue(result.hasNext()); String prev = null; while (result.hasNext()) { Authorizable authorizable = result.next(); Value[] color = authorizable.getProperty("color"); assertNotNull(color); assertEquals(1, color.length); assertTrue(prev == null || prev.compareToIgnoreCase(color[0].getString()) >= 0); prev = color[0].getString(); } }
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 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 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 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 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 testSortOrder2() throws RepositoryException { Iterator<Authorizable> result = userMgr.findAuthorizables(new Query() { public <T> void build(QueryBuilder<T> builder) { builder.setCondition(builder. exists("profile/@weight")); builder.setSortOrder("profile/@weight", Direction.ASCENDING, true); } }); assertTrue(result.hasNext()); double prev = Double.MIN_VALUE; while (result.hasNext()) { Authorizable authorizable = result.next(); Value[] weight = authorizable.getProperty("profile/weight"); assertNotNull(weight); assertEquals(1, weight.length); assertTrue(prev <= weight[0].getDouble()); prev = weight[0].getDouble(); } }
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 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 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); }