Author: aadamchik
Date: Sun Jul 22 08:51:12 2012
New Revision: 1364236

URL: http://svn.apache.org/viewvc?rev=1364236&view=rev
Log:
testing custom types as PK
(cherry picked from commit 09f867d97e9217e79b821da2a7d5906874235cec)

Added:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/UuidPkEntity.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_UuidPkEntity.java
Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/UUIDTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/UUIDTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/UUIDTest.java?rev=1364236&r1=1364235&r2=1364236&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/UUIDTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/UUIDTest.java
 Sun Jul 22 08:51:12 2012
@@ -20,10 +20,13 @@ package org.apache.cayenne.access;
 
 import java.util.UUID;
 
+import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.testdo.testmap.UuidPkEntity;
 import org.apache.cayenne.testdo.testmap.UuidTestEntity;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -37,9 +40,14 @@ public class UUIDTest extends ServerCase
     @Inject
     private DBHelper dbHelper;
 
+    private TableHelper uuidPkEntity;
+
     @Override
     protected void setUpAfterInjection() throws Exception {
         dbHelper.deleteAll("UUID_TEST");
+        dbHelper.deleteAll("UUID_PK_ENTITY");
+
+        uuidPkEntity = new TableHelper(dbHelper, "UUID_PK_ENTITY", "ID");
     }
 
     public void testUUID() throws Exception {
@@ -58,4 +66,28 @@ public class UUIDTest extends ServerCase
         test.setUuid(null);
         context.commitChanges();
     }
+
+    public void testUUIDMeaningfulPkInsert() throws Exception {
+        UUID id = UUID.randomUUID();
+
+        UuidPkEntity o1 = context.newObject(UuidPkEntity.class);
+        o1.setId(id);
+
+        context.commitChanges();
+
+        String fetched = uuidPkEntity.getString("ID");
+        assertEquals(id, UUID.fromString(fetched));
+    }
+
+    public void testUUIDMeaningfulPkSelect() throws Exception {
+        UUID id = UUID.randomUUID();
+
+        uuidPkEntity.insert(id);
+
+        UuidPkEntity o1 = Cayenne.objectForPK(context, UuidPkEntity.class, id);
+
+        assertNotNull(o1);
+        assertEquals(id, o1.getId());
+        assertEquals(id, o1.getObjectId().getIdSnapshot().get("ID"));
+    }
 }

Added: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/UuidPkEntity.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/UuidPkEntity.java?rev=1364236&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/UuidPkEntity.java
 (added)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/UuidPkEntity.java
 Sun Jul 22 08:51:12 2012
@@ -0,0 +1,7 @@
+package org.apache.cayenne.testdo.testmap;
+
+import org.apache.cayenne.testdo.testmap.auto._UuidPkEntity;
+
+public class UuidPkEntity extends _UuidPkEntity {
+
+}

Added: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_UuidPkEntity.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_UuidPkEntity.java?rev=1364236&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_UuidPkEntity.java
 (added)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_UuidPkEntity.java
 Sun Jul 22 08:51:12 2012
@@ -0,0 +1,26 @@
+package org.apache.cayenne.testdo.testmap.auto;
+
+import java.util.UUID;
+
+import org.apache.cayenne.CayenneDataObject;
+
+/**
+ * Class _UuidPkEntity was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _UuidPkEntity extends CayenneDataObject {
+
+    public static final String ID_PROPERTY = "id";
+
+    public static final String ID_PK_COLUMN = "ID";
+
+    public void setId(UUID id) {
+        writeProperty(ID_PROPERTY, id);
+    }
+    public UUID getId() {
+        return (UUID)readProperty(ID_PROPERTY);
+    }
+
+}

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml?rev=1364236&r1=1364235&r2=1364236&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
 Sun Jul 22 08:51:12 2012
@@ -310,6 +310,9 @@
                <db-attribute name="LONGVARBINARY_COLUMN" type="LONGVARBINARY"/>
                <db-attribute name="VARBINARY_COLUMN" type="VARBINARY" 
length="1000"/>
        </db-entity>
+       <db-entity name="UUID_PK_ENTITY">
+               <db-attribute name="ID" type="VARCHAR" isPrimaryKey="true" 
isMandatory="true" length="100"/>
+       </db-entity>
        <db-entity name="UUID_TEST">
                <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
                <db-attribute name="UUID" type="VARCHAR" length="100"/>
@@ -575,6 +578,9 @@
        <obj-entity name="TinyintTestEntity" 
className="org.apache.cayenne.testdo.testmap.TinyintTestEntity" 
dbEntityName="TINYINT_TEST">
                <obj-attribute name="tinyintCol" type="java.lang.Byte" 
db-attribute-path="TINYINT_COL"/>
        </obj-entity>
+       <obj-entity name="UuidPkEntity" 
className="org.apache.cayenne.testdo.testmap.UuidPkEntity" 
dbEntityName="UUID_PK_ENTITY">
+               <obj-attribute name="id" type="java.util.UUID" 
db-attribute-path="ID"/>
+       </obj-entity>
        <obj-entity name="UuidTestEntity" 
className="org.apache.cayenne.testdo.testmap.UuidTestEntity" 
dbEntityName="UUID_TEST">
                <obj-attribute name="uuid" type="java.util.UUID" 
db-attribute-path="UUID"/>
        </obj-entity>


Reply via email to