public void testOrderByField() {
TestModel one = new TestModel().setFirstName("Sam").setLastName("Bosley");
TestModel two = new TestModel().setFirstName("Kevin").setLastName("Lim");
TestModel three = new TestModel().setFirstName("Jonathan").setLastName("Koren");
database.persist(one);
database.persist(two);
database.persist(three);
String[] nameOrder = new String[]{"Kevin", "Sam", "Jonathan"};
SquidCursor<TestModel> nameOrderCursor = database.query(TestModel.class, Query.select(TestModel.PROPERTIES)
.orderBy(Order.byArray(TestModel.FIRST_NAME, nameOrder)));
try {
assertEquals(3, nameOrderCursor.getCount());
for (nameOrderCursor.moveToFirst(); !nameOrderCursor.isAfterLast(); nameOrderCursor.moveToNext()) {
assertEquals(nameOrder[nameOrderCursor.getPosition()], nameOrderCursor.get(TestModel.FIRST_NAME));
}
} finally {
nameOrderCursor.close();
}
Long[] idOrder = new Long[]{3L, 1L, 2L};
SquidCursor<TestModel> idOrderCursor = database.query(TestModel.class, Query.select(TestModel.PROPERTIES)
.orderBy(Order.byArray(TestModel.ID, idOrder)));
try {
assertEquals(3, idOrderCursor.getCount());
for (idOrderCursor.moveToFirst(); !idOrderCursor.isAfterLast(); idOrderCursor.moveToNext()) {
assertEquals(idOrder[idOrderCursor.getPosition()], idOrderCursor.get(TestModel.ID));
}
} finally {
idOrderCursor.close();
}
}