Package org.apache.cayenne

Examples of org.apache.cayenne.ObjectContext


    public void testSelect() throws Exception {
        deleteTestData();
        createTestData("testArtists");

        DataContext parent = createDataContext();
        ObjectContext child = parent.createChildContext();

        // test how different object states appear in the child on select

        Persistent _new = parent.newObject(Artist.class);

        Persistent hollow = parent.localObject(new ObjectId(
                "Artist",
                Artist.ARTIST_ID_PK_COLUMN,
                33001), null);
        DataObject committed = (DataObject) Cayenne.objectForQuery(
                parent,
                new ObjectIdQuery(new ObjectId(
                        "Artist",
                        Artist.ARTIST_ID_PK_COLUMN,
                        33002)));

        int modifiedId = 33003;
        Artist modified = (Artist) Cayenne.objectForQuery(
                parent,
                new ObjectIdQuery(new ObjectId(
                        "Artist",
                        Artist.ARTIST_ID_PK_COLUMN,
                        modifiedId)));
        modified.setArtistName("MODDED");
        DataObject deleted = (DataObject) Cayenne.objectForQuery(
                parent,
                new ObjectIdQuery(new ObjectId(
                        "Artist",
                        Artist.ARTIST_ID_PK_COLUMN,
                        33004)));
        parent.deleteObject(deleted);

        assertEquals(PersistenceState.HOLLOW, hollow.getPersistenceState());
        assertEquals(PersistenceState.COMMITTED, committed.getPersistenceState());
        assertEquals(PersistenceState.MODIFIED, modified.getPersistenceState());
        assertEquals(PersistenceState.DELETED, deleted.getPersistenceState());
        assertEquals(PersistenceState.NEW, _new.getPersistenceState());

        List objects = child.performQuery(new SelectQuery(Artist.class));
        assertEquals("All but NEW object must have been included", 4, objects.size());

        Iterator it = objects.iterator();
        while (it.hasNext()) {
            DataObject next = (DataObject) it.next();
View Full Code Here


    public void testReadToOneRelationship() throws Exception {
        deleteTestData();
        createTestData("testReadRelationship");

        DataContext parent = createDataContext();
        ObjectContext child = parent.createChildContext();

        // test how different object states appear in the child on select

        int hollowTargetSrcId = 33001;
        int modifiedTargetSrcId = 33002;
        int deletedTargetSrcId = 33003;
        int committedTargetSrcId = 33004;
        int newTargetSrcId = 33005;

        Painting hollowTargetSrc = Cayenne.objectForPK(
                parent,
                Painting.class,
                hollowTargetSrcId);
        Artist hollowTarget = hollowTargetSrc.getToArtist();

        Painting modifiedTargetSrc = Cayenne.objectForPK(
                parent,
                Painting.class,
                modifiedTargetSrcId);
        Artist modifiedTarget = modifiedTargetSrc.getToArtist();
        modifiedTarget.setArtistName("M1");

        Painting deletedTargetSrc = Cayenne.objectForPK(
                parent,
                Painting.class,
                deletedTargetSrcId);
        Artist deletedTarget = deletedTargetSrc.getToArtist();
        deletedTargetSrc.setToArtist(null);
        parent.deleteObject(deletedTarget);

        Painting committedTargetSrc = Cayenne.objectForPK(
                parent,
                Painting.class,
                committedTargetSrcId);
        Artist committedTarget = committedTargetSrc.getToArtist();
        committedTarget.getArtistName();

        Painting newTargetSrc = Cayenne.objectForPK(
                parent,
                Painting.class,
                newTargetSrcId);
        Artist newTarget = parent.newObject(Artist.class);
        newTarget.setArtistName("N1");
        newTargetSrc.setToArtist(newTarget);

        assertEquals(PersistenceState.COMMITTED, hollowTargetSrc.getPersistenceState());
        assertEquals(PersistenceState.COMMITTED, modifiedTargetSrc.getPersistenceState());
        assertEquals(PersistenceState.MODIFIED, deletedTargetSrc.getPersistenceState());
        assertEquals(PersistenceState.COMMITTED, committedTargetSrc.getPersistenceState());
        assertEquals(PersistenceState.MODIFIED, newTargetSrc.getPersistenceState());

        assertEquals(PersistenceState.HOLLOW, hollowTarget.getPersistenceState());
        assertEquals(PersistenceState.MODIFIED, modifiedTarget.getPersistenceState());
        assertEquals(PersistenceState.DELETED, deletedTarget.getPersistenceState());
        assertEquals(PersistenceState.COMMITTED, committedTarget.getPersistenceState());
        assertEquals(PersistenceState.NEW, newTarget.getPersistenceState());

        // run an ordered query, so we can address specific objects directly by index
        SelectQuery q = new SelectQuery(Painting.class);
        q.addOrdering(Painting.PAINTING_TITLE_PROPERTY, SortOrder.ASCENDING);
        List childSources = child.performQuery(q);
        assertEquals(5, childSources.size());

        blockQueries();
        try {
            Painting childHollowTargetSrc = (Painting) childSources.get(0);
View Full Code Here

    public void testPrefetchingToOne() throws Exception {
        deleteTestData();
        createTestData("testPrefetching");

        DataContext parent = createDataContext();
        ObjectContext child = parent.createChildContext();

        ObjectId prefetchedId = new ObjectId(
                "Artist",
                Artist.ARTIST_ID_PK_COLUMN,
                new Integer(33001));

        SelectQuery q = new SelectQuery(Painting.class);
        q.addOrdering(Painting.PAINTING_TITLE_PROPERTY, SortOrder.ASCENDING);
        q.addPrefetch(Painting.TO_ARTIST_PROPERTY);

        List results = child.performQuery(q);

        blockQueries();
        try {
            assertEquals(2, results.size());
            Iterator it = results.iterator();
View Full Code Here

    public void testPrefetchingToMany() throws Exception {
        deleteTestData();
        createTestData("testPrefetching");

        DataContext parent = createDataContext();
        ObjectContext child = parent.createChildContext();

        SelectQuery q = new SelectQuery(Artist.class);
        q.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
        q.addPrefetch(Artist.PAINTING_ARRAY_PROPERTY);

        List results = child.performQuery(q);

        blockQueries();
        try {

            Artist o1 = (Artist) results.get(0);
View Full Code Here

        assertNull(exp.getOperand(1));
    }
   
    //CAY-416
    public void testCollectionMatch() {
        ObjectContext dc = createDataContext();
        Artist artist = dc.newObject(Artist.class);
        Painting p1 = dc.newObject(Painting.class), p2 = dc.newObject(Painting.class),
            p3 = dc.newObject(Painting.class);
        p1.setPaintingTitle("p1");
        p2.setPaintingTitle("p2");
        p3.setPaintingTitle("p3");
        artist.addToPaintingArray(p1);
        artist.addToPaintingArray(p2);
View Full Code Here

        assertTrue(ExpressionFactory.inExp("paintingTitle", "p1").match(p1));
        assertFalse(ExpressionFactory.notInExp("paintingTitle", "p3").match(p3));
    }
   
    public void testMatchObject() {
        ObjectContext dc = createDataContext();
       
        Artist a1 = dc.newObject(Artist.class);
        a1.setArtistName("a1");
        Artist a2 = dc.newObject(Artist.class);
        a2.setArtistName("a2");
        Artist a3 = dc.newObject(Artist.class);
        a3.setArtistName("a3");
        dc.commitChanges();
       
        SelectQuery query = new SelectQuery(Artist.class);
       
        query.setQualifier(ExpressionFactory.matchExp(a2));
        Object res = Cayenne.objectForQuery(dc, query);//exception if >1 result
        assertSame(res, a2);
        assertTrue(query.getQualifier().match(res));
       
        query.setQualifier(ExpressionFactory.matchAnyExp(a1, a3));
        query.addOrdering("artistName", SortOrder.ASCENDING);
        List<Persistent> list = dc.performQuery(query);
        assertEquals(list.size(), 2);
        assertSame(list.get(0), a1);
        assertSame(list.get(1), a3);
        assertTrue(query.getQualifier().match(a1));
        assertTrue(query.getQualifier().match(a3));
View Full Code Here

        assertEquals(query.getQualifier(),
                ExpressionFactory.matchAnyExp(Arrays.asList(a1, a3)));
    }
   
    public void testIn() {
        ObjectContext dc = createDataContext();
       
        Artist a1 = dc.newObject(Artist.class);
        a1.setArtistName("a1");
        Painting p1 = dc.newObject(Painting.class);
        p1.setPaintingTitle("p1");
        Painting p2 = dc.newObject(Painting.class);
        p2.setPaintingTitle("p2");
        a1.addToPaintingArray(p1);
        a1.addToPaintingArray(p2);
        dc.commitChanges();
       
        Expression in = ExpressionFactory.inExp("paintingArray", p1);
        assertTrue(in.match(a1));
    }
View Full Code Here

public class LightSuperClassTest extends PersistentCase {
    
    public void testServer() throws Exception {
        deleteTestData();
       
        ObjectContext context = createContext();
        Continent continent = context.newObject(Continent.class);
        continent.setName("Europe");
       
        Country country = new Country();
        context.registerNewObject(country);
       
        //TODO: setting property before object creation does not work on ROP (CAY-1320)
        country.setName("Russia");
       
        country.setContinent(continent);
        assertEquals(continent.getCountries().size(), 1);
       
        context.commitChanges();
       
        context.deleteObject(country);
        assertEquals(continent.getCountries().size(), 0);
        continent.setName("Australia");
       
        context.commitChanges();
        context.performQuery(new RefreshQuery());
       
        assertEquals(context.performQuery(new SelectQuery(Country.class)).size(), 0);
        assertEquals(context.performQuery(new SelectQuery(Continent.class)).size(), 1);
    }
View Full Code Here

        preUpdated = 0;
        postUpdated = 0;
    }
   
    public void testDefault() throws InterruptedException {
        ObjectContext context = createROPContext();
        context.getEntityResolver().getCallbackRegistry().addListener(ClientMtLifecycles.class, this);
       
        assertAll(0, 0, 0, 0, 0, 0, 0, 0);
        ClientMtLifecycles l1 = context.newObject(ClientMtLifecycles.class);
       
        assertAll(1, 0, 0, 0, 0, 0, 0, 0);
        l1.setName("x");
        assertAll(1, 0, 0, 0, 0, 0, 0, 0);
       
        context.commitChanges();
        Thread.sleep(5); //until commit
        assertAll(1, 0, 1, 1, 0, 0, 0, 0);
       
        l1.setName("x2");
        assertAll(1, 0, 1, 1, 0, 0, 0, 0);
       
        context.commitChanges();
        Thread.sleep(5); //until commit
        assertAll(1, 0, 1, 1, 1, 1, 0, 0);
       
        context.deleteObject(l1);
        assertAll(1, 0, 1, 1, 1, 1, 1, 0);
       
        context.commitChanges();
        Thread.sleep(5); //until commit
        assertAll(1, 0, 1, 1, 1, 1, 1, 1);
    }
View Full Code Here

        SelectQuery query = new SelectQuery(Artist.class);
        query.setCacheStrategy(QueryCacheStrategy.LOCAL_CACHE);

        DataContext context = createDataContext();
        ObjectContext child1 = context.createChildContext();

        assertNull(((BaseContext) child1).getQueryCache().get(
                query.getMetaData(child1.getEntityResolver())));

        assertNull(context.getQueryCache().get(
                query.getMetaData(context.getEntityResolver())));

        List<?> results = child1.performQuery(query);
        assertSame(results, ((BaseContext) child1).getQueryCache().get(
                query.getMetaData(child1.getEntityResolver())));

        assertNull(context.getQueryCache().get(
                query.getMetaData(context.getEntityResolver())));
    }
View Full Code Here

TOP

Related Classes of org.apache.cayenne.ObjectContext

Copyright © 2018 www.massapicom. 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.