@Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = "ISPN028515: Cannot have aggregate functions in the WHERE clause : SUM.") public void testDisallowAggregatesInWhereClause() { Query q = buildQuery("select name from org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS where sum(age) > 33 group by name"); q.list(); }
public void testUnorderedPagination5() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .startOffset(20) .build(); List<User> list = q.list(); assertEquals(3, q.getResultSize()); assertEquals(0, list.size()); }
public void testParam() { Query q = createQueryFromString("from " + getModelFactory().getTransactionTypeName() + " where id = :idParam"); q.setParameter("idParam", 1); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); q.setParameter("idParam", 2); list = q.list(); assertEquals(1, list.size()); assertEquals(2, list.get(0).getId()); }
/** * Create an event filter out of an Ickle query. */ public static <K, V> CacheEventFilterConverter<K, V, ObjectFilter.FilterResult> makeFilter(Query query) { return makeFilter(query.getQueryString(), query.getParameters()); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParamWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); Map<String, Object> parameterMap = new HashMap<>(1); parameterMap.put("param1", "John"); q.setParameters(parameterMap); q.list(); }
private void applyNamedParameters(QueryParameters queryParameters, Query query) { for ( Map.Entry<String, TypedGridValue> param : queryParameters.getNamedParameters().entrySet() ) { query.setParameter( param.getKey(), getValue( param ) ); } }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014804: Query does not have parameters") public void testQueryWithNoParams() { QueryFactory qf = getQueryFactory(); qf.from(getModelFactory().getUserImplClass()) .having("name").eq("John") .build() .setParameter("param1", "John"); }
@Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = "ISPN014026: The expression 'name' must be part of an aggregate function or it should be included in the GROUP BY clause") public void testDisallowNonAggregatedProjectionWithGlobalAggregation() { Query q = buildQuery("select name, count(name) from org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS"); q.list(); }
public void testUnorderedPagination4() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .maxResults(5) .build(); List<User> list = q.list(); assertEquals(3, q.getResultSize()); assertEquals(3, list.size()); }
public void testDateParam() throws Exception { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getAccountImplClass()) .having("creationDate").eq(param("param1")) .build().setParameter("param1", makeDate("2013-01-03")); List<Account> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014803: Parameter name cannot be null or empty") public void testNullParamName() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param(null)) .build(); q.setParameter(null, "John"); }
@Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = "ISPN028516: Cannot have aggregate functions in the GROUP BY clause : SUM.") public void testDisallowAggregationInGroupBy() { Query q = buildQuery("select sum(age) from org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS group by sum(age) "); q.list(); }
private void executeQueries() { String q = getQuery(); caches().forEach(c -> { Query allNodesQuery = Search.getQueryFactory(c).create(q, getIndexedQueryMode()); assertAllNodesQueryResults(allNodesQuery.getResultSize()); }); Query singleNodeQuery = Search.getQueryFactory(cache(0)).create(q); assertSingleNodeQueryResults(singleNodeQuery.list().size()); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); q.setParameter("param1", "John"); q.list(); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014805: No parameter named 'param2' was found") public void testUnknownParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .build(); q.setParameter("param2", "John"); }
@Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = "ISPN014026: The expression 'age' must be part of an aggregate function or it should be included in the GROUP BY clause") public void testHavingClauseAllowsAggregationsAndGroupByColumnsOnly() { Query q = buildQuery("select name from org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS group by name having age >= 18"); q.list(); }
public void testUnorderedPagination7() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .startOffset(1).maxResults(10) .build(); List<User> list = q.list(); assertEquals(3, q.getResultSize()); assertEquals(2, list.size()); }
public void testEqHybridQueryWithParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("notes").eq("Lorem ipsum dolor sit amet") .and().having("surname").eq(param("surnameParam")) .build(); q.setParameter("surnameParam", "Doe"); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014803: Parameter name cannot be null or empty") public void testEmptyParamName() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("")) .build(); q.setParameter("", "John"); }
public void testGrouping() { Query q = buildQuery("select name from org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS " + "where surname is not null group by name having name >= 'A'"); List<User> list = q.list(); assertEquals(2, list.size()); }