public void testPrefetchingToOne() throws Exception {
deleteTestData();
ClientMtTable1 mt11 = context.newObject(ClientMtTable1.class);
ClientMtTable1 mt12 = context.newObject(ClientMtTable1.class);
ClientMtTable2 mt21 = context.newObject(ClientMtTable2.class);
ClientMtTable2 mt22 = context.newObject(ClientMtTable2.class);
mt21.setTable1(mt11);
mt22.setTable1(mt11);
context.commitChanges();
ObjectContext child = context.createChildContext();
SelectQuery q = new SelectQuery(ClientMtTable2.class);
q.addPrefetch(ClientMtTable2.TABLE1_PROPERTY);
List results = child.performQuery(q);
blockQueries();
try {
assertEquals(2, results.size());
Iterator it = results.iterator();
while (it.hasNext()) {
ClientMtTable2 o = (ClientMtTable2) it.next();
assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
assertSame(child, o.getObjectContext());
ClientMtTable1 o1 = o.getTable1();
assertNotNull(o1);
assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
assertSame(child, o1.getObjectContext());
assertEquals(mt11.getObjectId(), o1.getObjectId());
}