You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2012/01/21 23:32:02 UTC

svn commit: r1234428 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne: ./ access/ remote/

Author: aadamchik
Date: Sat Jan 21 22:32:02 2012
New Revision: 1234428

URL: http://svn.apache.org/viewvc?rev=1234428&view=rev
Log:
CAY-1616 Remove internal dependencies on deprecated ObjectContext.localObject

migrating unit tests

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneContextTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneContextTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneContextTest.java?rev=1234428&r1=1234427&r2=1234428&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneContextTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneContextTest.java Sat Jan 21 22:32:02 2012
@@ -72,6 +72,7 @@ public class CayenneContextTest extends 
         assertSame(channel, context.getChannel());
     }
 
+    @Deprecated
     public void testLocalObject() {
 
         DataChannel channel = mock(DataChannel.class);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java?rev=1234428&r1=1234427&r2=1234428&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java Sat Jan 21 22:32:02 2012
@@ -26,7 +26,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.test.jdbc.DBHelper;
@@ -108,10 +108,7 @@ public class DataContextPerformQueryAPIT
     public void testObjectQueryStringMapBoolean() throws Exception {
         createTwoArtistsAndTwoPaintingsDataSet();
 
-        Artist a = (Artist) context.localObject(new ObjectId(
-                "Artist",
-                Artist.ARTIST_ID_PK_COLUMN,
-                11), null);
+        Artist a = Cayenne.objectForPK(context, Artist.class, 11);
         Map<String, Artist> parameters = Collections.singletonMap("artist", a);
 
         List<?> paintings = context2.performQuery("ObjectQuery", parameters, true);
@@ -169,10 +166,7 @@ public class DataContextPerformQueryAPIT
         assertEquals(1, counts.length);
         assertEquals(1, counts[0]);
 
-        Painting p = (Painting) context.localObject(new ObjectId(
-                "Painting",
-                Painting.PAINTING_ID_PK_COLUMN,
-                512), null);
+        Painting p = Cayenne.objectForPK(context, Painting.class, 512);
         assertEquals("No Painting Like This", p.getPaintingTitle());
     }
 
@@ -191,10 +185,7 @@ public class DataContextPerformQueryAPIT
         assertEquals(1, counts.length);
         assertEquals(1, counts[0]);
 
-        Painting p = (Painting) context.localObject(new ObjectId(
-                "Painting",
-                Painting.PAINTING_ID_PK_COLUMN,
-                300), null);
+        Painting p = Cayenne.objectForPK(context, Painting.class, 300);
         assertEquals("Go Figure", p.getPaintingTitle());
     }
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java?rev=1234428&r1=1234427&r2=1234428&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java Sat Jan 21 22:32:02 2012
@@ -20,6 +20,7 @@
 package org.apache.cayenne.access;
 
 import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.relationship.Child;
 import org.apache.cayenne.testdo.relationship.Master;
@@ -31,6 +32,9 @@ import org.apache.cayenne.unit.util.Thre
 public class NestedDataContextParentPeerEventsTest extends ServerCase {
 
     @Inject
+    private ServerRuntime runtime;
+
+    @Inject
     private DataContext parentContext1;
 
     @Inject
@@ -41,10 +45,10 @@ public class NestedDataContextParentPeer
         a.setName("X");
         parentContext1.commitChanges();
 
-        Master a1 = (Master) parentContext2.localObject(a.getObjectId(), a);
+        Master a1 = parentContext2.localObject(a);
 
-        final ObjectContext child = parentContext1.createChildContext();
-        final Master a2 = (Master) child.localObject(a.getObjectId(), a);
+        final ObjectContext child = runtime.getContext(parentContext1);
+        final Master a2 = child.localObject(a);
 
         a1.setName("Y");
         assertEquals("X", a2.getName());
@@ -56,8 +60,9 @@ public class NestedDataContextParentPeer
             protected void assertResult() throws Exception {
                 assertEquals("Y", a2.getName());
 
-                assertFalse("Peer data context became dirty on event processing", child
-                        .hasChanges());
+                assertFalse(
+                        "Peer data context became dirty on event processing",
+                        child.hasChanges());
             }
         }.assertWithTimeout(2000);
     }
@@ -72,13 +77,13 @@ public class NestedDataContextParentPeer
         altA.setName("Y");
         parentContext1.commitChanges();
 
-        Child p1 = (Child) parentContext2.localObject(p.getObjectId(), null);
-        Master altA1 = (Master) parentContext2.localObject(altA.getObjectId(), null);
+        Child p1 = parentContext2.localObject(p);
+        Master altA1 = parentContext2.localObject(altA);
 
-        final ObjectContext childContext1 = parentContext1.createChildContext();
-        final Child p2 = (Child) childContext1.localObject(p.getObjectId(), p);
-        final Master altA2 = (Master) childContext1.localObject(altA.getObjectId(), altA);
-        Master a2 = (Master) childContext1.localObject(a.getObjectId(), a);
+        final ObjectContext childContext1 = runtime.getContext(parentContext1);
+        final Child p2 = childContext1.localObject(p);
+        final Master altA2 = childContext1.localObject(altA);
+        Master a2 = childContext1.localObject(a);
 
         p1.setMaster(altA1);
         assertSame(a2, p2.getMaster());
@@ -108,12 +113,12 @@ public class NestedDataContextParentPeer
 
         parentContext1.commitChanges();
 
-        Child py1 = (Child) parentContext2.localObject(py.getObjectId(), py);
-        Master a1 = (Master) parentContext2.localObject(a.getObjectId(), a);
+        Child py1 = parentContext2.localObject(py);
+        Master a1 = parentContext2.localObject(a);
 
-        final ObjectContext peer2 = parentContext1.createChildContext();
-        final Child py2 = (Child) peer2.localObject(py.getObjectId(), py);
-        final Master a2 = (Master) peer2.localObject(a.getObjectId(), a);
+        final ObjectContext peer2 = runtime.getContext(parentContext1);
+        final Child py2 = peer2.localObject(py);
+        final Master a2 = peer2.localObject(a);
 
         a1.addToChildren(py1);
         assertEquals(1, a2.getChildren().size());
@@ -127,8 +132,9 @@ public class NestedDataContextParentPeer
                 assertEquals(2, a2.getChildren().size());
                 assertTrue(a2.getChildren().contains(py2));
 
-                assertFalse("Peer data context became dirty on event processing", peer2
-                        .hasChanges());
+                assertFalse(
+                        "Peer data context became dirty on event processing",
+                        peer2.hasChanges());
             }
         }.assertWithTimeout(2000);
     }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsTest.java?rev=1234428&r1=1234427&r2=1234428&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsTest.java Sat Jan 21 22:32:02 2012
@@ -21,6 +21,7 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
@@ -33,17 +34,30 @@ public class NestedDataContextPeerEvents
     @Inject
     private DataContext context;
 
+    @Inject
+    private ServerRuntime runtime;
+
     public void testPeerObjectUpdatedTempOID() {
-        ObjectContext peer1 = context.createChildContext();
+
+        ObjectContext peer1 = runtime.getContext(context);
         Artist a1 = peer1.newObject(Artist.class);
-        a1.setArtistName("Y");
+        a1.setArtistName("Z");
+
+        // commit to parent, so that object with temp ID becomes visible to peer child
+        // contexts
+        peer1.commitChangesToParent();
+
         ObjectId a1TempId = a1.getObjectId();
+        assertTrue(a1TempId.isTemporary());
 
-        ObjectContext peer2 = context.createChildContext();
-        Artist a2 = (Artist) peer2.localObject(a1TempId, a1);
+        ObjectContext peer2 = runtime.getContext(context);
+        Artist a2 = peer2.localObject(a1);
 
         assertEquals(a1TempId, a2.getObjectId());
 
+        // make changes to be able to trigger a commit from child, the commit to DB
+        a1.setArtistName("Y");
+
         peer1.commitChanges();
         assertFalse(a1.getObjectId().isTemporary());
         assertFalse(a2.getObjectId().isTemporary());
@@ -55,19 +69,20 @@ public class NestedDataContextPeerEvents
         a.setArtistName("X");
         context.commitChanges();
 
-        ObjectContext peer1 = context.createChildContext();
-        Artist a1 = (Artist) peer1.localObject(a.getObjectId(), a);
+        ObjectContext peer1 = runtime.getContext(context);
+        Artist a1 = peer1.localObject(a);
 
-        ObjectContext peer2 = context.createChildContext();
-        Artist a2 = (Artist) peer2.localObject(a.getObjectId(), a);
+        ObjectContext peer2 = runtime.getContext(context);
+        Artist a2 = peer2.localObject(a);
 
         a1.setArtistName("Y");
         assertEquals("X", a2.getArtistName());
         peer1.commitChangesToParent();
         assertEquals("Y", a2.getArtistName());
 
-        assertFalse("Peer data context became dirty on event processing", peer2
-                .hasChanges());
+        assertFalse(
+                "Peer data context became dirty on event processing",
+                peer2.hasChanges());
     }
 
     public void testPeerObjectUpdatedToOneRelationship() {
@@ -82,22 +97,23 @@ public class NestedDataContextPeerEvents
         altA.setArtistName("Y");
         context.commitChanges();
 
-        ObjectContext peer1 = context.createChildContext();
-        Painting p1 = (Painting) peer1.localObject(p.getObjectId(), p);
-        Artist altA1 = (Artist) peer1.localObject(altA.getObjectId(), altA);
-
-        ObjectContext peer2 = context.createChildContext();
-        Painting p2 = (Painting) peer2.localObject(p.getObjectId(), p);
-        Artist altA2 = (Artist) peer2.localObject(altA.getObjectId(), altA);
-        Artist a2 = (Artist) peer2.localObject(a.getObjectId(), a);
+        ObjectContext peer1 = runtime.getContext(context);
+        Painting p1 = peer1.localObject(p);
+        Artist altA1 = peer1.localObject(altA);
+
+        ObjectContext peer2 = runtime.getContext(context);
+        Painting p2 = peer2.localObject(p);
+        Artist altA2 = peer2.localObject(altA);
+        Artist a2 = peer2.localObject(a);
 
         p1.setToArtist(altA1);
         assertSame(a2, p2.getToArtist());
         peer1.commitChangesToParent();
         assertEquals(altA2, p2.getToArtist());
 
-        assertFalse("Peer data context became dirty on event processing", peer2
-                .hasChanges());
+        assertFalse(
+                "Peer data context became dirty on event processing",
+                peer2.hasChanges());
     }
 
     public void testPeerObjectUpdatedToManyRelationship() {
@@ -114,13 +130,13 @@ public class NestedDataContextPeerEvents
 
         context.commitChanges();
 
-        ObjectContext peer1 = context.createChildContext();
-        Painting py1 = (Painting) peer1.localObject(py.getObjectId(), py);
-        Artist a1 = (Artist) peer1.localObject(a.getObjectId(), a);
-
-        ObjectContext peer2 = context.createChildContext();
-        Painting py2 = (Painting) peer2.localObject(py.getObjectId(), py);
-        Artist a2 = (Artist) peer2.localObject(a.getObjectId(), a);
+        ObjectContext peer1 = runtime.getContext(context);
+        Painting py1 = peer1.localObject(py);
+        Artist a1 = peer1.localObject(a);
+
+        ObjectContext peer2 = runtime.getContext(context);
+        Painting py2 = peer2.localObject(py);
+        Artist a2 = peer2.localObject(a);
 
         a1.addToPaintingArray(py1);
         assertEquals(1, a2.getPaintingArray().size());
@@ -129,7 +145,8 @@ public class NestedDataContextPeerEvents
         assertEquals(2, a2.getPaintingArray().size());
         assertTrue(a2.getPaintingArray().contains(py2));
 
-        assertFalse("Peer data context became dirty on event processing", peer2
-                .hasChanges());
+        assertFalse(
+                "Peer data context became dirty on event processing",
+                peer2.hasChanges());
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java?rev=1234428&r1=1234427&r2=1234428&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java Sat Jan 21 22:32:02 2012
@@ -30,14 +30,14 @@ import org.apache.cayenne.unit.di.server
 
 @UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
 public class NestedObjectContextPeerEventsTest extends RemoteCayenneCase {
-    
+
     @Inject
     private DBHelper dbHelper;
-    
+
     @Override
     public void setUpAfterInjection() throws Exception {
         super.setUpAfterInjection();
-        
+
         dbHelper.deleteAll("MT_TABLE2");
         dbHelper.deleteAll("MT_TABLE1");
     }
@@ -47,12 +47,16 @@ public class NestedObjectContextPeerEven
         ClientMtTable1 a1 = peer1.newObject(ClientMtTable1.class);
         a1.setGlobalAttribute1("Y");
         ObjectId a1TempId = a1.getObjectId();
+        
+        // make sure temp ObjectId becomes available to peers
+        peer1.commitChangesToParent();
 
         ObjectContext peer2 = clientContext.createChildContext();
-        ClientMtTable1 a2 = (ClientMtTable1) peer2.localObject(a1TempId, a1);
+        ClientMtTable1 a2 = peer2.localObject(a1);
 
         assertEquals(a1TempId, a2.getObjectId());
 
+        a1.setGlobalAttribute1("Z");
         peer1.commitChanges();
         assertFalse(a1.getObjectId().isTemporary());
         assertFalse(a2.getObjectId().isTemporary());
@@ -65,18 +69,19 @@ public class NestedObjectContextPeerEven
         clientContext.commitChanges();
 
         ObjectContext peer1 = clientContext.createChildContext();
-        ClientMtTable1 a1 = (ClientMtTable1) peer1.localObject(a.getObjectId(), a);
+        ClientMtTable1 a1 = peer1.localObject(a);
 
         ObjectContext peer2 = clientContext.createChildContext();
-        ClientMtTable1 a2 = (ClientMtTable1) peer2.localObject(a.getObjectId(), a);
+        ClientMtTable1 a2 = peer2.localObject(a);
 
         a1.setGlobalAttribute1("Y");
         assertEquals("X", a2.getGlobalAttribute1());
         peer1.commitChangesToParent();
         assertEquals("Y", a2.getGlobalAttribute1());
 
-        assertFalse("Peer data context became dirty on event processing", peer2
-                .hasChanges());
+        assertFalse(
+                "Peer data context became dirty on event processing",
+                peer2.hasChanges());
     }
 
     public void testPeerObjectUpdatedToOneRelationship() throws Exception {
@@ -91,21 +96,22 @@ public class NestedObjectContextPeerEven
         clientContext.commitChanges();
 
         ObjectContext peer1 = clientContext.createChildContext();
-        ClientMtTable2 p1 = (ClientMtTable2) peer1.localObject(p.getObjectId(), p);
-        ClientMtTable1 altA1 = (ClientMtTable1) peer1.localObject(altA.getObjectId(), altA);
+        ClientMtTable2 p1 = peer1.localObject(p);
+        ClientMtTable1 altA1 = peer1.localObject(altA);
 
         ObjectContext peer2 = clientContext.createChildContext();
-        ClientMtTable2 p2 = (ClientMtTable2) peer2.localObject(p.getObjectId(), p);
-        ClientMtTable1 altA2 = (ClientMtTable1) peer2.localObject(altA.getObjectId(), altA);
-        ClientMtTable1 a2 = (ClientMtTable1) peer2.localObject(a.getObjectId(), a);
+        ClientMtTable2 p2 = peer2.localObject(p);
+        ClientMtTable1 altA2 = peer2.localObject(altA);
+        ClientMtTable1 a2 = peer2.localObject(a);
 
         p1.setTable1(altA1);
         assertSame(a2, p2.getTable1());
         peer1.commitChangesToParent();
         assertEquals(altA2, p2.getTable1());
 
-        assertFalse("Peer data context became dirty on event processing", peer2
-                .hasChanges());
+        assertFalse(
+                "Peer data context became dirty on event processing",
+                peer2.hasChanges());
     }
 
     public void testPeerObjectUpdatedToManyRelationship() throws Exception {
@@ -122,12 +128,12 @@ public class NestedObjectContextPeerEven
         clientContext.commitChanges();
 
         ObjectContext peer1 = clientContext.createChildContext();
-        ClientMtTable2 py1 = (ClientMtTable2) peer1.localObject(py.getObjectId(), py);
-        ClientMtTable1 a1 = (ClientMtTable1) peer1.localObject(a.getObjectId(), a);
+        ClientMtTable2 py1 = peer1.localObject(py);
+        ClientMtTable1 a1 = peer1.localObject(a);
 
         ObjectContext peer2 = clientContext.createChildContext();
-        ClientMtTable2 py2 = (ClientMtTable2) peer2.localObject(py.getObjectId(), py);
-        ClientMtTable1 a2 = (ClientMtTable1) peer2.localObject(a.getObjectId(), a);
+        ClientMtTable2 py2 = peer2.localObject(py);
+        ClientMtTable1 a2 = peer2.localObject(a);
 
         a1.addToTable2Array(py1);
         assertEquals(1, a2.getTable2Array().size());
@@ -136,7 +142,8 @@ public class NestedObjectContextPeerEven
         assertEquals(2, a2.getTable2Array().size());
         assertTrue(a2.getTable2Array().contains(py2));
 
-        assertFalse("Peer data context became dirty on event processing", peer2
-                .hasChanges());
+        assertFalse(
+                "Peer data context became dirty on event processing",
+                peer2.hasChanges());
     }
 }