Package org.apache.cayenne.testdo.mt

Examples of org.apache.cayenne.testdo.mt.ClientMtTable1


        assertNotSame(c1, c2);

        // make sure c2 has uncommitted changes
        c2.newObject(ClientMtTable1.class);

        ClientMtTable1 o1 = c1.newObject(ClientMtTable1.class);
        o1.setGlobalAttribute1("X");
        c1.commitChanges();

        ClientMtTable1 o2 = (ClientMtTable1) c2.getGraphManager().getNode(
                o1.getObjectId());
        assertNull(o2);

        // now fetch it fresh

        o2 = (ClientMtTable1) c2.performQuery(new ObjectIdQuery(o1.getObjectId())).get(0);
        assertNotNull(o2);
        assertEquals("X", o2.getGlobalAttribute1());
        assertEquals(PersistenceState.COMMITTED, o2.getPersistenceState());
        assertFalse(c1.internalGraphManager().hasChanges());
        assertTrue(c2.internalGraphManager().hasChanges());
    }
View Full Code Here


        CayenneContext c1 = (CayenneContext) runtime.getContext();
        CayenneContext c2 = (CayenneContext) runtime.getContext();
        assertNotSame(c1, c2);

        ClientMtTable1 o1 = (ClientMtTable1) Cayenne.objectForQuery(
                c1,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 1)));

        ClientMtTable1 o2 = (ClientMtTable1) Cayenne.objectForQuery(
                c2,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 1)));

        assertEquals("g1", o1.getGlobalAttribute1());
        assertEquals("g1", o2.getGlobalAttribute1());

        o1.setGlobalAttribute1("X");
        c1.commitChanges();

        assertEquals("X", o2.getGlobalAttribute1());
        assertFalse(c1.internalGraphManager().hasChanges());
        assertFalse(c2.internalGraphManager().hasChanges());
    }
View Full Code Here

                new ObjectIdQuery(new ObjectId("MtTable2", "TABLE2_ID", 1)));

        assertEquals("g1", o1.getTable1().getGlobalAttribute1());
        assertEquals("g1", o2.getTable1().getGlobalAttribute1());

        ClientMtTable1 o1r = (ClientMtTable1) Cayenne.objectForQuery(
                c1,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 2)));
        o1.setTable1(o1r);
        c1.commitChanges();

        assertEquals("g2", o2.getTable1().getGlobalAttribute1());
        assertEquals(o1r.getObjectId(), o2.getTable1().getObjectId());
        assertFalse(c1.internalGraphManager().hasChanges());
        assertFalse(c2.internalGraphManager().hasChanges());
    }
View Full Code Here

        tMtTable2.insert(1, 1, "g1");

        CayenneContext c1 = (CayenneContext) runtime.getContext();
        CayenneContext c2 = (CayenneContext) runtime.getContext();

        ClientMtTable1 o1 = (ClientMtTable1) Cayenne.objectForQuery(
                c1,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 1)));

        ClientMtTable1 o2 = (ClientMtTable1) Cayenne.objectForQuery(
                c2,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 1)));

        assertEquals(1, o1.getTable2Array().size());
        assertEquals(1, o2.getTable2Array().size());

        ClientMtTable2 o1r = c1.newObject(ClientMtTable2.class);
        o1r.setGlobalAttribute("X");
        o1.addToTable2Array(o1r);

        c1.commitChanges();

        assertEquals(2, o1.getTable2Array().size());
        assertEquals(2, o2.getTable2Array().size());
        assertFalse(c1.internalGraphManager().hasChanges());
        assertFalse(c2.internalGraphManager().hasChanges());
    }
View Full Code Here

        tMtTable2.insert(1, 1, "g1");

        CayenneContext c1 = (CayenneContext) runtime.getContext();
        CayenneContext c2 = (CayenneContext) runtime.getContext();

        ClientMtTable1 o1 = (ClientMtTable1) Cayenne.objectForQuery(
                c1,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 1)));

        // do not resolve objects in question in the second context and see if the merge
        // causes any issues...

        assertEquals(1, o1.getTable2Array().size());

        ClientMtTable2 o1r = c1.newObject(ClientMtTable2.class);
        o1r.setGlobalAttribute("X");
        o1.addToTable2Array(o1r);

        c1.commitChanges();

        assertEquals(2, o1.getTable2Array().size());

        assertFalse(c1.internalGraphManager().hasChanges());
        assertFalse(c2.internalGraphManager().hasChanges());

        ClientMtTable1 o2 = (ClientMtTable1) Cayenne.objectForQuery(
                c2,
                new ObjectIdQuery(new ObjectId("MtTable1", "TABLE1_ID", 1)));
        assertEquals(2, o2.getTable2Array().size());
    }
View Full Code Here

                        .getEntityResolver()
                        .getClientEntityResolver());

        List<Persistent> sources = new ArrayList<Persistent>();

        ClientMtTable1 s1 = new ClientMtTable1();
        s1.setPersistenceState(PersistenceState.COMMITTED);
        s1.setObjectId(new ObjectId("MtTable1", MtTable1.TABLE1_ID_PK_COLUMN, 1));
        s1.setGlobalAttribute1("abc");
        s1.setObjectContext(src);
        src.getGraphManager().registerNode(s1.getObjectId(), s1);
        sources.add(s1);

        ClientMtTable1 s2 = new ClientMtTable1();
        s2.setPersistenceState(PersistenceState.COMMITTED);
        s2.setObjectId(new ObjectId("MtTable1", MtTable1.TABLE1_ID_PK_COLUMN, 2));
        s2.setGlobalAttribute1("xyz");
        s2.setObjectContext(src);
        src.getGraphManager().registerNode(s2.getObjectId(), s2);
        sources.add(s2);

        ClientMtTable1 s3 = new ClientMtTable1();
        s3.setPersistenceState(PersistenceState.HOLLOW);
        s3.setObjectId(new ObjectId("MtTable1", MtTable1.TABLE1_ID_PK_COLUMN, 3));
        s3.setObjectContext(src);
        src.getGraphManager().registerNode(s3.getObjectId(), s3);
        sources.add(s3);

        CayenneContext target = new CayenneContext(channel);
        target.setEntityResolver(serverContext
                .getEntityResolver()
View Full Code Here

    }

    public void testBeforePropertyReadShouldInflateHollow() {

        ObjectId gid = new ObjectId("MtTable1", "a", "b");
        final ClientMtTable1 inflated = new ClientMtTable1();
        inflated.setPersistenceState(PersistenceState.COMMITTED);
        inflated.setObjectId(gid);
        inflated.setGlobalAttribute1("abc");

        ClientConnection connection = mock(ClientConnection.class);
        when(connection.sendMessage((ClientMessage) any())).thenAnswer(
                new Answer<Object>() {

                    public Object answer(InvocationOnMock invocation) {
                        ClientMessage arg = (ClientMessage) invocation.getArguments()[0];

                        if (arg instanceof BootstrapMessage) {
                            return new EntityResolver();
                        }
                        else {
                            return new GenericResponse(Arrays.asList(inflated));
                        }
                    }
                });

        ClientChannel channel = new ClientChannel(
                connection,
                false,
                new MockEventManager(),
                false);

        // check that a HOLLOW object is infalted on "beforePropertyRead"
        ClientMtTable1 hollow = new ClientMtTable1();
        hollow.setPersistenceState(PersistenceState.HOLLOW);
        hollow.setObjectId(gid);

        final boolean[] selectExecuted = new boolean[1];
        CayenneContext context = new CayenneContext(channel) {

            @Override
            public List<?> performQuery(Query query) {
                selectExecuted[0] = true;
                return super.performQuery(query);
            }
        };

        context.setEntityResolver(serverContext
                .getEntityResolver()
                .getClientEntityResolver());

        context.graphManager.registerNode(hollow.getObjectId(), hollow);

        // testing this...
        context
                .prepareForAccess(
                        hollow,
                        ClientMtTable1.GLOBAL_ATTRIBUTE1_PROPERTY,
                        false);
        assertTrue(selectExecuted[0]);
        assertSame(hollow, context.getGraphManager().getNode(gid));
        assertEquals(inflated.getGlobalAttribute1Direct(), hollow
                .getGlobalAttribute1Direct());
        assertEquals(PersistenceState.COMMITTED, hollow.getPersistenceState());
    }
View Full Code Here

    }

    public void testBeforeHollowDeleteShouldChangeStateToCommited() {

        ObjectId gid = new ObjectId("MtTable1", "a", "b");
        final ClientMtTable1 inflated = new ClientMtTable1();
        inflated.setPersistenceState(PersistenceState.COMMITTED);
        inflated.setObjectId(gid);
        inflated.setGlobalAttribute1("abc");

        ClientConnection connection = mock(ClientConnection.class);
        when(connection.sendMessage((ClientMessage) any())).thenAnswer(
                new Answer<Object>() {

                    public Object answer(InvocationOnMock invocation) {
                        ClientMessage arg = (ClientMessage) invocation.getArguments()[0];

                        if (arg instanceof BootstrapMessage) {
                            return new EntityResolver();
                        }
                        else {
                            return new GenericResponse(Arrays.asList(inflated));
                        }
                    }
                });
        ClientChannel channel = new ClientChannel(
                connection,
                false,
                new MockEventManager(),
                false);

        CayenneContext context = new CayenneContext(channel);
        context.setEntityResolver(serverContext
                .getEntityResolver()
                .getClientEntityResolver());
        ClientMtTable1 hollow = (ClientMtTable1) context.localObject(gid, null);
        assertEquals(PersistenceState.HOLLOW, hollow.getPersistenceState());

        // testing this...
        context.deleteObjects(hollow);
        assertSame(hollow, context.getGraphManager().getNode(gid));
        assertEquals(inflated.getGlobalAttribute1Direct(), hollow
                .getGlobalAttribute1Direct());
        assertEquals(PersistenceState.DELETED, hollow.getPersistenceState());
    }
View Full Code Here

    }

    public void testLocalObjectSynchronize() throws Exception {
        final ObjectContext child = clientContext.createChildContext();

        final ClientMtTable1 committed = clientContext.newObject(ClientMtTable1.class);
        final ClientMtTable1 deleted = clientContext.newObject(ClientMtTable1.class);
        final ClientMtTable1 modified = clientContext.newObject(ClientMtTable1.class);

        clientContext.commitChanges();

        clientContext.deleteObjects(deleted);
        modified.setGlobalAttribute1("a");

        final ClientMtTable1 _new = clientContext.newObject(ClientMtTable1.class);

        final ClientMtTable1 hollow = (ClientMtTable1) clientContext.localObject(new ObjectId(
                "MtTable1"), null);

        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());

        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {

            public void execute() {
                Persistent newPeer = child.localObject(_new.getObjectId(), _new);

                assertEquals(_new.getObjectId(), newPeer.getObjectId());
                assertEquals(PersistenceState.COMMITTED, newPeer.getPersistenceState());

                assertSame(child, newPeer.getObjectContext());
                assertSame(clientContext, _new.getObjectContext());

                Persistent hollowPeer = child.localObject(hollow.getObjectId(), hollow);
                assertEquals(PersistenceState.HOLLOW, hollowPeer.getPersistenceState());
                assertEquals(hollow.getObjectId(), hollowPeer.getObjectId());
                assertSame(child, hollowPeer.getObjectContext());
                assertSame(clientContext, hollow.getObjectContext());

                Persistent committedPeer = child.localObject(
                        committed.getObjectId(),
                        committed);
                assertEquals(PersistenceState.COMMITTED, committedPeer
                        .getPersistenceState());
                assertEquals(committed.getObjectId(), committedPeer.getObjectId());
                assertSame(child, committedPeer.getObjectContext());
                assertSame(clientContext, committed.getObjectContext());

                ClientMtTable1 modifiedPeer = (ClientMtTable1) child.localObject(modified
                        .getObjectId(), modified);
                assertEquals(PersistenceState.COMMITTED, modifiedPeer
                        .getPersistenceState());
                assertEquals(modified.getObjectId(), modifiedPeer.getObjectId());
                assertEquals("a", modifiedPeer.getGlobalAttribute1());
                assertSame(child, modifiedPeer.getObjectContext());
                assertSame(clientContext, modified.getObjectContext());

                Persistent deletedPeer = child
                        .localObject(deleted.getObjectId(), deleted);
                assertEquals(PersistenceState.COMMITTED, deletedPeer
View Full Code Here

    }

    public void testLocalObjectsNoOverride() throws Exception {
        final ObjectContext child = clientContext.createChildContext();

        final ClientMtTable1 modified = clientContext.newObject(ClientMtTable1.class);
        clientContext.commitChanges();

        final ClientMtTable1 peerModified = (ClientMtTable1) Cayenne.objectForQuery(
                child,
                new ObjectIdQuery(modified.getObjectId()));

        modified.setGlobalAttribute1("M1");
        peerModified.setGlobalAttribute1("M2");

        assertEquals(PersistenceState.MODIFIED, modified.getPersistenceState());
        assertEquals(PersistenceState.MODIFIED, peerModified.getPersistenceState());

        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {

            public void execute() {
                Persistent peerModified2 = child.localObject(
                        modified.getObjectId(),
                        modified);
                assertSame(peerModified, peerModified2);
                assertEquals(PersistenceState.MODIFIED, peerModified2
                        .getPersistenceState());
                assertEquals("M2", peerModified.getGlobalAttribute1());
                assertEquals("M1", modified.getGlobalAttribute1());
            }
        });
    }
View Full Code Here

TOP

Related Classes of org.apache.cayenne.testdo.mt.ClientMtTable1

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.