Author: kwsutter
Date: Mon Oct  4 21:34:20 2010
New Revision: 1004441

URL: http://svn.apache.org/viewvc?rev=1004441&view=rev
Log:
Update ExternalValue testcase to show a "common" boolean to char mapping...

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java?rev=1004441&r1=1004440&r2=1004441&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java
 Mon Oct  4 21:34:20 2010
@@ -43,7 +43,18 @@ public class EntityA implements java.io.
        @ExternalValues( { "SMALL=5", "MEDIUM=8", "LARGE=15" })
        @Type(int.class)
        private String s2;
-
+       
+       /*
+        * By default, OpenJPA stores Chars as Ints, so to force the use of
+        * a char(1) field, you would need to override this processing via
+        * a DBDictionary property:
+        * -Dopenjpa.jdbc.DBDictionary=derby(StoreCharsAsNumbers=false)
+        */
+    @Column(name="USE_STREAMING", length=1)
+    @ExternalValues({"true=T", "false=F"})
+    @Type(char.class)
+    private boolean _useStreaming = false;
+    
        public EntityA() {
        }
 
@@ -66,4 +77,12 @@ public class EntityA implements java.io.
        public void setS2(String s2) {
                this.s2 = s2;
        }
+       
+    public boolean getUseStreaming() {
+        return _useStreaming;
+    }
+
+    public void setUseStreaming(boolean useStreaming) {
+        _useStreaming = useStreaming;
+    }
 }

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java?rev=1004441&r1=1004440&r2=1004441&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java
 Mon Oct  4 21:34:20 2010
@@ -19,15 +19,43 @@
 package org.apache.openjpa.persistence.external;
 
 import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import junit.framework.Assert;
 
-import org.apache.openjpa.persistence.PersistenceException;
 import org.apache.openjpa.persistence.RollbackException;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
 public class TestExternalValues extends SingleEMFTestCase {
 
     public void setUp() {
-        super.setUp(EntityA.class);
+        super.setUp(CLEAR_TABLES, EntityA.class);
+    }
+
+    public void testExternalValues() {
+        EntityManager em = emf.createEntityManager();
+
+        em.getTransaction().begin();
+
+        EntityA entity = new EntityA();
+
+        entity.setS1("SMALL");
+        entity.setS2("MEDIUM");
+        entity.setUseStreaming(true);
+
+        em.persist(entity);
+        
+        em.getTransaction().commit();
+        
+        // Validate
+        
+        Query q = em.createQuery("SELECT a from EntityA a");
+        EntityA aPrime = (EntityA) q.getSingleResult();
+        Assert.assertEquals("SMALL", aPrime.getS1());
+        Assert.assertEquals("MEDIUM", aPrime.getS2());
+        Assert.assertEquals(true, aPrime.getUseStreaming());
+
+        em.close();
     }
 
     public void testUnrecognizedExternalValue() {


Reply via email to