assertTrue(user.getBio() == null);
}
}
public void testGroupBy(IDatabases dbs) throws IOException, SQLException {
IUserPersistence users = dbs.getDatabase1().users();
users.deleteAll();
for (int i = 0; i < 100; i++) {
User user = users.createDefaultInstance().setHandle(String.valueOf(i % 2)).setNumPosts(i);
user.save();
}
List<User> result;
// Test Max
result = users.query()
.select(User._Fields.handle)
.selectAgg(max(User._Fields.num_posts))
.groupBy(User._Fields.handle)
.orderByHandle()
.findWithOrder();
assertEquals(2, result.size());
assertEquals("0", result.get(0).getHandle());
assertEquals(98, result.get(0).getNumPosts());
assertEquals("1", result.get(1).getHandle());
assertEquals(99, result.get(1).getNumPosts());
// Test Min
result = users.query()
.select(User._Fields.handle)
.selectAgg(AggregatorFunctions.min(User._Fields.num_posts))
.groupBy(User._Fields.handle)
.orderByHandle()
.findWithOrder();
assertEquals(0, result.get(0).getNumPosts());
assertEquals(1, result.get(1).getNumPosts());
// Test Count
result = users.query()
.select(User._Fields.handle)
.selectAgg(AggregatorFunctions.count(User._Fields.num_posts))
.groupBy(User._Fields.handle)
.orderByHandle()
.findWithOrder();
assertEquals(50, result.get(0).getNumPosts());
assertEquals(50, result.get(1).getNumPosts());
// Test Sum
result = users.query()
.select(User._Fields.handle)
.selectAgg(AggregatorFunctions.sum(User._Fields.num_posts))
.groupBy(User._Fields.handle)
.orderByHandle()
.findWithOrder();
assertEquals(2, result.size());
assertEquals(2450, result.get(0).getNumPosts());
assertEquals(2500, result.get(1).getNumPosts());
// Test Avg
result = users.query()
.select(User._Fields.handle)
.selectAgg(AggregatorFunctions.avg(User._Fields.num_posts))
.groupBy(User._Fields.handle)
.orderByHandle()
.findWithOrder();