Search in sources :

Example 1 with CompoundMapTarget2

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);
    }
}
Also used : Transaction(javax.jdo.Transaction) PersistenceManager(javax.jdo.PersistenceManager) CompoundMapTarget2(org.jpox.samples.compoundidentity.CompoundMapTarget2) CompoundHolder(org.jpox.samples.compoundidentity.CompoundHolder)

Aggregations

PersistenceManager (javax.jdo.PersistenceManager)1 Transaction (javax.jdo.Transaction)1 CompoundHolder (org.jpox.samples.compoundidentity.CompoundHolder)1 CompoundMapTarget2 (org.jpox.samples.compoundidentity.CompoundMapTarget2)1