use of org.jpox.samples.compoundidentity.CompoundMapTarget2 in project tests by datanucleus.
the class CompoundIdentityTest method testOneToManyMapBiValueInKey.
/**
* Test of compound identity 1-N relations with a map using ForeignKey and the map value stored in the key.
*/
public void testOneToManyMapBiValueInKey() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
Object id = null;
CompoundMapTarget2[] values = new CompoundMapTarget2[6];
try {
tx.begin();
CompoundHolder holder1 = new CompoundHolder("First Holder");
values[0] = new CompoundMapTarget2("First", holder1, 1.0);
values[1] = new CompoundMapTarget2("Second", holder1, 2.0);
values[2] = new CompoundMapTarget2("Third", holder1, 3.0);
values[3] = new CompoundMapTarget2("Fourth", holder1, 4.0);
values[4] = new CompoundMapTarget2("Fifth", holder1, 5.0);
values[5] = new CompoundMapTarget2("Sixth", holder1, 6.0);
for (int i = 0; i < 6; i++) {
holder1.getMap2().put(values[i], values[i].getValue());
}
pm.makePersistent(holder1);
tx.commit();
id = pm.getObjectId(holder1);
tx.begin();
CompoundHolder holder2 = (CompoundHolder) pm.getObjectById(id, true);
assertEquals(6, holder2.getMap2().size());
assertEquals(new Double(1.0), holder2.getMap2().get(values[0]));
assertEquals(new Double(2.0), holder2.getMap2().get(values[1]));
assertEquals(new Double(3.0), holder2.getMap2().get(values[2]));
assertEquals(new Double(4.0), holder2.getMap2().get(values[3]));
assertEquals(new Double(5.0), holder2.getMap2().get(values[4]));
assertEquals(new Double(6.0), holder2.getMap2().get(values[5]));
tx.commit();
} catch (Exception e) {
LOG.error(e);
e.printStackTrace();
fail(e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(CompoundHolder.class);
clean(CompoundMapTarget2.class);
}
}
Aggregations