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 2014/02/02 14:09:32 UTC

svn commit: r1563610 - in /cayenne/main/trunk/cayenne-server/src: main/java/org/apache/cayenne/dba/JdbcPkGenerator.java test/java/org/apache/cayenne/dba/JdbcPkGeneratorTest.java test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java

Author: aadamchik
Date: Sun Feb  2 13:09:32 2014
New Revision: 1563610

URL: http://svn.apache.org/r1563610
Log:
for sequence based PK generators we must drop pk and recreate
 for the test to work

Modified:
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorTest.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java?rev=1563610&r1=1563609&r2=1563610&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java Sun Feb  2 13:09:32 2014
@@ -51,7 +51,7 @@ import org.apache.cayenne.util.IDUtil;
 public class JdbcPkGenerator implements PkGenerator {
 
     public static final int DEFAULT_PK_CACHE_SIZE = 20;
-    private static final long DEFAULT_PK_START_VALUE = 200;
+    static final long DEFAULT_PK_START_VALUE = 200;
 
     protected JdbcAdapter adapter;
     protected ConcurrentHashMap<String, Queue<Long>> pkCache = new ConcurrentHashMap<String, Queue<Long>>();

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorTest.java?rev=1563610&r1=1563609&r2=1563610&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorTest.java Sun Feb  2 13:09:32 2014
@@ -26,6 +26,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.SchemaBuilder;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
@@ -37,6 +38,28 @@ public class JdbcPkGeneratorTest extends
 
     @Inject
     private DataNode node;
+    
+    @Inject
+    private SchemaBuilder schemaBuilder;
+    
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        schemaBuilder.dropPKSupport();
+    }
+    
+    @Override
+    protected void tearDownBeforeInjection() throws Exception {
+
+        if (JdbcPkGenerator.class.isAssignableFrom(adapter.getPkGenerator().getClass())) {
+            // reset PK gen properly before updating PKs in DB
+            JdbcPkGenerator pkGenerator = (JdbcPkGenerator) adapter.getPkGenerator();
+
+            pkGenerator.setPkStartValue(JdbcPkGenerator.DEFAULT_PK_START_VALUE);
+
+            schemaBuilder.dropPKSupport();
+            schemaBuilder.createPKSupport();
+        }
+    }
 
     public void testLongPk() throws Exception {
 
@@ -57,7 +80,7 @@ public class JdbcPkGeneratorTest extends
         }
         pkGenerator.createAutoPk(node, Collections.singletonList(artistEntity));
         pkGenerator.reset();
-
+        
         Object pk = pkGenerator.generatePk(node, pkAttribute);
         assertTrue(pk instanceof Long);
         assertTrue("PK is too small: " + pk, ((Long) pk).longValue() > Integer.MAX_VALUE);

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java?rev=1563610&r1=1563609&r2=1563610&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java Sun Feb  2 13:09:32 2014
@@ -170,7 +170,7 @@ public class SchemaBuilder {
         }
     }
 
-    private void dropPKSupport() throws Exception {
+    public void dropPKSupport() throws Exception {
         for (DataNode node : domain.getDataNodes()) {
             dropPKSupport(node, node.getDataMaps().iterator().next());
         }
@@ -181,7 +181,7 @@ public class SchemaBuilder {
      * facilities provided by DbAdapter to generate any necessary database
      * objects and data for primary key support.
      */
-    private void createPKSupport() throws Exception {
+    public void createPKSupport() throws Exception {
         for (DataNode node : domain.getDataNodes()) {
             createPKSupport(node, node.getDataMaps().iterator().next());
         }