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>