Author: dwoods
Date: Mon Oct 11 21:49:36 2010
New Revision: 1021525

URL: http://svn.apache.org/viewvc?rev=1021525&view=rev
Log:
OPENJPA-1764 test can only be run against Derby, due to 
openjpa.ConnectionUserName being used as a schema name

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java?rev=1021525&r1=1021524&r2=1021525&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
 Mon Oct 11 21:49:36 2010
@@ -27,31 +27,42 @@ import javax.persistence.EntityManagerFa
 import javax.persistence.RollbackException;
 
 import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.sql.DB2Dictionary;
 import org.apache.openjpa.jdbc.sql.DBDictionary;
 import org.apache.openjpa.jdbc.sql.DerbyDictionary;
 import org.apache.openjpa.persistence.ArgumentException;
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
-import org.apache.openjpa.persistence.test.AbstractPersistenceTestCase;
+import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
-public class TestOverrideNonJtaDataSource extends AbstractPersistenceTestCase {
+public class TestOverrideNonJtaDataSource extends SingleEMFTestCase {
     private String defaultJndiName = "jdbc/mocked";
     private String[] jndiNames = { "jdbc/mocked1" };
 
     protected void init(String cfName) {
-        EntityManagerFactory emf = getEmf("openjpa.ConnectionFactoryName", 
cfName, true);
-        EntityManager em = emf.createEntityManager();
+        EntityManagerFactory emf1 = getEmf("openjpa.ConnectionFactoryName", 
cfName, true);
+        EntityManager em = emf1.createEntityManager();
         em.getTransaction().begin();
         em.createQuery("Delete from confPerson").executeUpdate();
         em.getTransaction().commit();
         em.close();
-        closeEMF(emf);
+        closeEMF(emf1);
     }
 
-    protected void setUp() {
-        // create an EMF for each database.
-        init(defaultJndiName);
-        init(jndiNames[0]);
+    public void setUp() throws Exception {
+        super.setUp(Person.class, CLEAR_TABLES);
+        OpenJPAEntityManager em = emf.createEntityManager();
+        JDBCConfiguration conf = (JDBCConfiguration) em.getConfiguration();
+        if (conf.getConnectionUserName() != null || 
!conf.getConnectionUserName().equals("")) {
+            // Disable for non-Derby, due to connectionUserName to schema 
mapping failures
+            setTestsDisabled(true);
+            getLog().trace("TestOverrideNonJtaDataSource can only be executed 
against Derby w/o a schema");
+        } else {
+            // create an EMF for each database.
+            init(defaultJndiName);
+            init(jndiNames[0]);
+        }
     }
     
     protected EntityManagerFactory getEmf(String cfPropertyName, String 
cfPropertyValue) {
@@ -63,7 +74,7 @@ public class TestOverrideNonJtaDataSourc
         if (syncMappings) {
             return createEMF(
                 "openjpa.jdbc.SynchronizeMappings", "buildSchema",
-                "openjpa.ConnectionDriverName", "",
+                "openjpa.ConnectionDriverName", "", 
                 "openjpa.ConnectionFactoryMode", "managed",
                 "openjpa.ConnectionFactoryName", defaultJndiName,  // must 
have a cf1, to initialize configuration
                 cfPropertyName,cfPropertyValue, 
@@ -101,74 +112,70 @@ public class TestOverrideNonJtaDataSourc
 
     public void overridePropertyOnEM(String name, String value) {
         // use the default JndiName for the base EntityManagerFactory
-        OpenJPAEntityManagerFactorySPI emf = 
(OpenJPAEntityManagerFactorySPI)getEmf(name, defaultJndiName);
-        assertNotNull(emf);
-
-        OpenJPAEntityManagerSPI em = emf.createEntityManager();
-        assertNotNull(em);
-
-        JDBCConfiguration conf = (JDBCConfiguration) em.getConfiguration();
-        DBDictionary dict = conf.getDBDictionaryInstance();
-        if (!(dict instanceof DerbyDictionary)) {
-            // Disable for non-Derby.
-            return;
-        }
-
-        EntityManager em1 = getEm(emf, name, value);
-        assertNotNull(em1);
-
-        // 'prove' that we're using a different database by inserting the same 
row
-        em.getTransaction().begin();
-        em.persist(new Person(1, "em"));
-        em.getTransaction().commit();
-
-        em1.getTransaction().begin();
-        em1.persist(new Person(1, "em1"));
-        em1.getTransaction().commit();
-
-        em.clear();
-        em1.clear();
-
-        Person p = em.find(Person.class, 1);
-        Person p1 = em1.find(Person.class, 1);
-        assertNotSame(p, p1);
-        assertEquals("em", p.getName());
-        assertEquals("em1", p1.getName());
+        OpenJPAEntityManagerFactorySPI emf1 = 
(OpenJPAEntityManagerFactorySPI)getEmf(name, defaultJndiName);
+        assertNotNull(emf1);
+        try {
+            OpenJPAEntityManagerSPI em = emf1.createEntityManager();
+            assertNotNull(em);
 
-        em.clear();
-        em1.clear();
+            EntityManager em1 = getEm(emf1, name, value);
+            assertNotNull(em1);
 
-        // make sure inserting the same row again fails.
-        em.getTransaction().begin();
-        em.persist(new Person(1));
-        try {
+            // 'prove' that we're using a different database by inserting the 
same row
+            em.getTransaction().begin();
+            em.persist(new Person(1, "em"));
             em.getTransaction().commit();
-            fail("Should not be able to commit the same row a second time");
-        } catch (RollbackException rbe) {
-            assertTrue(rbe.getCause() instanceof EntityExistsException);
-            // expected
-        }
 
-        em1.getTransaction().begin();
-        em1.persist(new Person(1));
-        try {
+            em1.getTransaction().begin();
+            em1.persist(new Person(1, "em1"));
             em1.getTransaction().commit();
-            fail("Should not be able to commit the same row a second time");
-        } catch (RollbackException rbe) {
-            assertTrue(rbe.getCause() instanceof EntityExistsException);
-            // expected
+
+            em.clear();
+            em1.clear();
+
+            Person p = em.find(Person.class, 1);
+            Person p1 = em1.find(Person.class, 1);
+            assertNotSame(p, p1);
+            assertEquals("em", p.getName());
+            assertEquals("em1", p1.getName());
+
+            em.clear();
+            em1.clear();
+
+            // make sure inserting the same row again fails.
+            em.getTransaction().begin();
+            em.persist(new Person(1));
+            try {
+                em.getTransaction().commit();
+                fail("Should not be able to commit the same row a second 
time");
+            } catch (RollbackException rbe) {
+                assertTrue("Expected EntityExistsException but found " + 
rbe.getCause(),
+                    rbe.getCause() instanceof EntityExistsException);
+                // expected
+            }
+
+            em1.getTransaction().begin();
+            em1.persist(new Person(1));
+            try {
+                em1.getTransaction().commit();
+                fail("Should not be able to commit the same row a second 
time");
+            } catch (RollbackException rbe) {
+                assertTrue(rbe.getCause() instanceof EntityExistsException);
+                // expected
+            }
+            em.close();
+            em1.close();
+        } finally {
+            closeEMF(emf1);
         }
-        em.close();
-        em1.close();
-        closeEMF(emf);
     }
 
     public void testInvalidCfName() throws Exception {
         // ensure EM creation fails - when provided an invalid JNDI name
-        EntityManagerFactory emf = null;
+        EntityManagerFactory emf1 = null;
         try {
-            emf = getEmf("openjpa.ConnectionFactory2Name", defaultJndiName);
-            getEm(emf, "openjpa.ConnectionFactory2Name", "jdbc/NotReal");
+            emf1 = getEmf("openjpa.ConnectionFactory2Name", defaultJndiName);
+            getEm(emf1, "openjpa.ConnectionFactory2Name", "jdbc/NotReal");
             fail("Expected an excepton when creating an EM with a bogus JNDI 
name");
         } catch (ArgumentException e) {
             assertTrue(e.isFatal());
@@ -176,55 +183,55 @@ public class TestOverrideNonJtaDataSourc
             assertTrue(e.getMessage().contains("jdbc/NotReal")); // ensure 
failing JNDI name is in the message
             assertTrue(e.getMessage().contains("EntityManager")); // ensure 
where the JNDI name came from is in message
         } finally {
-            closeEMF(emf);
+            closeEMF(emf1);
         }
     }
     
     public void testDataCache() { 
-        EntityManagerFactory emf = null;
+        EntityManagerFactory emf1 = null;
     
-        emf = getEmf("openjpa.DataCache", "true");
         try {
-            getEm(emf, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
+            emf1 = getEmf("openjpa.DataCache", "true");
+            getEm(emf1, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
             fail("Expected an excepton when creating an EM with a bogus JNDI 
name");
         } catch (ArgumentException e) {
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             assertTrue(e.getMessage().contains("L2 Cache")); 
         } finally {
-            closeEMF(emf);
+            closeEMF(emf1);
         }
     }
     
     public void testQueryCache() { 
-        EntityManagerFactory emf = null;
+        EntityManagerFactory emf1 = null;
     
-        emf = getEmf("openjpa.QueryCache", "true");
         try {
-            getEm(emf, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
+            emf1 = getEmf("openjpa.QueryCache", "true");
+            getEm(emf1, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
             fail("Expected an excepton when creating an EM with a bogus JNDI 
name");
         } catch (ArgumentException e) {
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             assertTrue(e.getMessage().contains("openjpa.QueryCache")); 
         } finally {
-            closeEMF(emf);
+            closeEMF(emf1);
         }
     }
     
     public void testSyncMappings() { 
-        EntityManagerFactory emf = null;
+        EntityManagerFactory emf1 = null;
     
-        emf = getEmf("openjpa.jdbc.SynchronizeMappings", "buildSchema");
         try {
-            getEm(emf, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
+            emf1 = getEmf("openjpa.jdbc.SynchronizeMappings", "buildSchema");
+            getEm(emf1, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
             fail("Expected an excepton when creating an EM with a bogus JNDI 
name");
         } catch (ArgumentException e) {
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             
assertTrue(e.getMessage().contains("openjpa.jdbc.SynchronizeMappings")); 
         } finally {
-            closeEMF(emf);
+            closeEMF(emf1);
         }
     }
 }


Reply via email to