@Test(expectedExceptions = IllegalArgumentException.class) public void testIn3() { QueryFactory qf = getQueryFactory(); qf.from(getModelFactory().getUserImplClass()).having("id").in(Collections.emptySet()); }
public void testSampleDomainQuery19() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("addresses.postCode").in("ZZ", "X1234").build(); List<User> list = q.list(); assertEquals(2, list.size()); assertTrue(Arrays.asList(1, 2).contains(list.get(0).getId())); assertTrue(Arrays.asList(1, 2).contains(list.get(1).getId())); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testIn5() { QueryFactory qf = getQueryFactory(); qf.from(getModelFactory().getUserImplClass()).having("id").in((Object[]) null); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testIn4() { QueryFactory qf = getQueryFactory(); qf.from(getModelFactory().getUserImplClass()).having("id").in((Collection) null); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testIn6() { QueryFactory qf = getQueryFactory(); Object[] array = new Object[0]; qf.from(getModelFactory().getUserImplClass()).having("id").in(array); }
public void testSampleDomainQuery20() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("addresses.postCode").in("X1234").build(); List<User> list = q.list(); assertEquals(2, list.size()); assertTrue(Arrays.asList(2, 3).contains(list.get(0).getId())); assertTrue(Arrays.asList(2, 3).contains(list.get(1).getId())); }
public void testIn1() { QueryFactory qf = getQueryFactory(); List<Integer> ids = Arrays.asList(1, 3); Query q = qf.from(getModelFactory().getUserImplClass()) .having("id").in(ids) .build(); List<User> list = q.list(); assertEquals(2, list.size()); for (User u : list) { assertTrue(ids.contains(u.getId())); } }
@Test public void testWayTooManyInClauses() { expectedException.expect(HotRodClientException.class); expectedException.expectMessage("org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1025"); Set<String> values = new HashSet<>(); for (int i = 0; i < 1026; i++) { values.add("test" + i); } QueryFactory qf = Search.getQueryFactory(remoteCache); QueryBuilder qb = qf.from(User.class).having("name").in(values); // this Ickle query translates to a BooleanQuery with 1026 clauses, 1 more than the configured // -Dinfinispan.query.lucene.max-boolean-clauses=1025, so executing the query is expected to fail qb.build().list(); }
public void testIn2() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("id").in(4) .build(); List<User> list = q.list(); assertEquals(0, list.size()); }
@Test public void testManyInClauses() { remoteCache.put(1, createUser1()); remoteCache.put(2, createUser2()); // get user back from remote cache and check its attributes User fromCache = remoteCache.get(1); assertUser1(fromCache); QueryFactory qf = Search.getQueryFactory(remoteCache); Set<String> values = new HashSet<>(); values.add("Tom"); for (int i = 0; i < 1024; i++) { values.add("test" + i); } QueryBuilder qb = qf.from(User.class).having("name").in(values); // this Ickle query translates to a BooleanQuery with 1025 clauses, 1 more than the max default (1024) so // executing it will fail unless the server jvm arg -Dinfinispan.query.lucene.max-boolean-clauses=1025 takes effect List<User> list = qb.build().list(); assertNotNull(list); assertEquals(1, list.size()); assertEquals(User.class, list.get(0).getClass()); assertUser1(list.get(0)); }
public void testSingleIN() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("surname").in("Man") .and() .having("gender").eq(User.Gender.MALE) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(2, list.get(0).getId()); assertEquals("Man", list.get(0).getSurname()); assertEquals(User.Gender.MALE, list.get(0).getGender()); } }
public void testSampleDomainQuery17() { QueryFactory qf = getQueryFactory(); // all accounts for a user. first get the user by id and then get his account. Query q1 = qf.from(getModelFactory().getUserImplClass()) .having("id").eq(1).build(); List<User> users = q1.list(); Query q2 = qf.from(getModelFactory().getAccountImplClass()) .orderBy("description", SortOrder.ASC) .having("id").in(users.get(0).getAccountIds()).build(); List<Account> list = q2.list(); assertEquals(2, list.size()); assertEquals("John Doe's first bank account", list.get(0).getDescription()); assertEquals("John Doe's second bank account", list.get(1).getDescription()); }