@Override public long getSize( StoreKey storeKey ) { Query query = queryFactory.from( NfcConcreteResourceWrapper.class ) .select( Expression.count( "path" ) ) .having( "location" ) .eq( storeKey.toString() ) .toBuilder() .build(); List<Object> result = query.list(); Object[] count = (Object[]) result.get( 0 ); return (Long) count[0]; }
@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 = ParsingException.class, expectedExceptionsMessageRegExp = "ISPN028515: Cannot have aggregate functions in the WHERE clause : MIN.") public void testRejectAggregationsInWhereClause() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .select("name") .having("name").eq(min("addresses.street")) .build(); q.list(); }
@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"); }
public void testSampleDomainQuery12() { QueryFactory qf = getQueryFactory(); // all the transactions that represents credits to the account Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("accountId").eq(1) .and() .not().having("isDebit").eq(true).build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertFalse(list.get(0).isDebit()); }
public void testCompareLongWithInt() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .select(sum("age")) .groupBy("name") .having(sum("age")).gt(50000) .build(); List<Object[]> list = q.list(); assertEquals(0, list.size()); }
public void testNot7() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.FEMALE) .and().not(qf.having("name").eq("Spider")) .build(); List<User> list = q.list(); assertTrue(list.isEmpty()); }
public void testAnd4() { QueryFactory qf = getQueryFactory(); //test for parenthesis, "and" should have higher priority Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq("Spider") .or(qf.having("name").eq("John")) .and(qf.having("surname").eq("Man")) .build(); List<User> list = q.list(); assertEquals(2, list.size()); }
public void testTautology() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").gt("A").or().having("name").lte("A") .build(); List<User> list = q.list(); assertEquals(3, list.size()); }
/** * Test querying for an inherited indexed field - direct inherited field access. */ public void testInheritedField() throws Exception { QueryFactory queryFactory = Search.getQueryFactory(cache); Query query = queryFactory.from(Person.class) .having("age").lte(52) .build(); List<Person> matches = query.list(); assertEquals(1, matches.size()); }
@Test(expectedExceptions = IllegalStateException.class) public void testWrongQueryBuilding1() { QueryFactory qf = getQueryFactory(); qf.not().having("name").eq("John").build(); }
@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(); }
@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"); }
public void testCompareDoubleWithInt() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getTransactionImplClass()) .select(sum("amount")) .groupBy("accountId") .having(sum("amount")).gt(50000) .build(); List<Object[]> list = q.list(); assertEquals(0, list.size()); }
public void testOr3() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.MALE) .or().having("gender").eq(User.Gender.FEMALE) .build(); List<User> list = q.list(); assertEquals(3, list.size()); }
@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 testAnd3() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.MALE) .and().having("gender").eq(User.Gender.FEMALE) .build(); List<User> list = q.list(); assertEquals(0, list.size()); }
public void testManyClauses() { QueryFactory qf = getQueryFactory(); QueryBuilder qb = qf.from(getModelFactory().getUserImplClass()); FilterConditionContext fcc = qb.having("name").eq("test"); for (int i = 0; i < 1024; i++) { fcc = fcc.and().having("name").eq("test" + i); } // This query is a boolean contradiction, so our smart query engine does not really execute it, // it just returns 0 results and that is fine. We just wanted to check it is parsed correctly. List<User> list = qb.build().list(); assertEquals(0, list.size()); }