}
public void testPrefetchingToOne() throws Exception {
createTestData("testPrefetching");
UnitLocalConnection connection = new UnitLocalConnection(new ClientServerChannel(
getDomain()), LocalConnection.HESSIAN_SERIALIZATION);
ClientChannel channel = new ClientChannel(connection);
CayenneContext context = new CayenneContext(channel);
ObjectId prefetchedId = new ObjectId(
"MtTable1",
MtTable1.TABLE1_ID_PK_COLUMN,
new Integer(1));
SelectQuery q = new SelectQuery(ClientMtTable2.class);
q.addOrdering(ClientMtTable2.GLOBAL_ATTRIBUTE_PROPERTY, true);
q.addPrefetch(ClientMtTable2.TABLE1_PROPERTY);
List results = context.performQuery(q);
connection.setBlockingMessages(true);
try {
assertEquals(2, results.size());
Iterator it = results.iterator();
while (it.hasNext()) {
ClientMtTable2 o = (ClientMtTable2) it.next();
assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
assertSame(context, o.getObjectContext());
ClientMtTable1 o1 = o.getTable1();
assertNotNull(o1);
assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
assertSame(context, o1.getObjectContext());
assertEquals(prefetchedId, o1.getObjectId());
}
}
finally {
connection.setBlockingMessages(false);
}
}