Package org.objectweb.speedo.runtime.inheritance

Source Code of org.objectweb.speedo.runtime.inheritance.TestFilteredVID

/**
* Copyright (C) 2001-2006 France Telecom R&D
*/
package org.objectweb.speedo.runtime.inheritance;

import org.objectweb.speedo.SpeedoTestHelper;
import org.objectweb.speedo.pobjects.inheritance.filtered.jdo2.vid.A;
import org.objectweb.speedo.pobjects.inheritance.filtered.jdo2.vid.C;
import org.objectweb.speedo.pobjects.inheritance.filtered.jdo2.vid.D;
import org.objectweb.speedo.pobjects.inheritance.filtered.jdo2.vid.E;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import javax.jdo.PersistenceManager;
import javax.jdo.Query;

public class TestFilteredVID extends SpeedoTestHelper {

    public TestFilteredVID(String n) {
        super(n);
    }

    protected String getLoggerName() {
        return LOG_NAME + "rt.inheritance.TestFilteredVID";
    }
    public void test1() {
        E e1 = new E();
        e1.setMyA(new A("a1"));
        e1.setMyC(new C("c1"));
        e1.setMyD(new D("d1"));
       
        E e2 = new E();
        e2.setMyA(new D("d2"));
        e2.setMyC(new D("d3"));
        e2.setMyD(new D("d4"));
        PersistenceManager pm = pmf.getPersistenceManager();
        pm.currentTransaction().begin();
        pm.makePersistent(e1);
        Object oide1 = pm.getObjectId(e1);
        pm.makePersistent(e2);
        Object oide2 = pm.getObjectId(e2);
        e1 = null;
        e2 = null;
        pm.currentTransaction().commit();

        pm.evictAll();
       
        pm.currentTransaction().begin();
        e1 = (E) pm.getObjectById(E.class, oide1);
        assertEquals("bad e1.myA.aid", e1.getMyA().getAid(), "a1");
        assertEquals("bad e1.myC.aid", e1.getMyC().getAid(), "c1");
        assertEquals("bad e1.myD.aid", e1.getMyD().getAid(), "d1");
        e1 = null;
        e2 = (E) pm.getObjectById(E.class, oide2);
        assertEquals("bad e2.myA.aid", e2.getMyA().getAid(), "d2");
        assertEquals("bad e2.myC.aid", e2.getMyC().getAid(), "d3");
        assertEquals("bad e2.myD.aid", e2.getMyD().getAid(), "d4");
        e2 = null;
        pm.currentTransaction().commit();
       
        pm.evictAll();
       
        pm.currentTransaction().begin();
        Query q = pm.newQuery(A.class);
        Collection c = (Collection) q.execute();
        List expected = Arrays.asList(
                new String[] {"a1", "c1", "d1", "d2", "d3", "d4"});
        ArrayList found = new ArrayList();
        for (Iterator it = c.iterator(); it.hasNext();) {
            A a = (A) it.next();
            found.add(a.getAid());
        }
        q.closeAll();
        assertSameCollection("Bad result of query on all A instances", expected, found);
        pm.currentTransaction().commit();

        pm.currentTransaction().begin();
        q = pm.newQuery(A.class);
        c = new ArrayList((Collection) q.execute());
        q.closeAll();
        q = pm.newQuery(E.class);
        c.addAll((Collection) q.execute());
        q.closeAll();
        pm.deletePersistentAll(c);
        pm.currentTransaction().commit();
       
        pm.close();
    }
   

}
TOP

Related Classes of org.objectweb.speedo.runtime.inheritance.TestFilteredVID

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.