CacheTestHelper.assertInCache(this, q, Boolean.FALSE);
}
public void testMutatedQueryReturnsNewResults() {
Broker broker = _factory.newBroker();
Query q =
broker.newQuery(JPQLParser.LANG_JPQL,
"select a.name, max(a.age) FROM " +
CacheObjectAChild1.class.getSimpleName() +
" a group by a.name");
List l = (List) q.execute();
CacheTestHelper.iterate(l);
CacheTestHelper.assertInCache(this, q, Boolean.TRUE);
l = (List) q.execute();
Object[] result = (Object[]) l.get(0);
assertEquals(2, result.length);
assertEquals(String.class, result[0].getClass());
assertEquals(Long.class, result[1].getClass());
// now, mutate the query and see what happens
q.setQuery("select max(a.age),a.name FROM " +
CacheObjectAChild1.class.getSimpleName() + " a group by a.name");
CacheTestHelper.assertInCache(this, q, Boolean.FALSE);
l = (List) q.execute();
result = (Object[]) l.get(0);
assertEquals(2, result.length);
assertEquals(Long.class, result[0].getClass());
assertEquals(String.class, result[1].getClass());
CacheTestHelper.iterate(l);
CacheTestHelper.assertInCache(this, q, Boolean.TRUE);
l = (List) q.execute();
result = (Object[]) l.get(0);
assertEquals(2, result.length);
assertEquals(Long.class, result[0].getClass());
assertEquals(String.class, result[1].getClass());
}