Author: aadamchik
Date: Sat Oct 20 23:40:15 2012
New Revision: 1400533

URL: http://svn.apache.org/viewvc?rev=1400533&view=rev
Log:
refactoring redundant test apis

Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/AddColumnToModelTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/CreateTableToModelTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropColumnToModelTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropTableToModelTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergerFactoryTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetNotNullToDbTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/ValueForNullTest.java

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/AddColumnToModelTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/AddColumnToModelTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/AddColumnToModelTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/AddColumnToModelTest.java
 Sat Oct 20 23:40:15 2012
@@ -33,7 +33,7 @@ public class AddColumnToModelTest extend
 
     public void testAddColumn() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -49,8 +49,8 @@ public class AddColumnToModelTest extend
 
         map.addDbEntity(dbEntity);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         ObjEntity objEntity = new ObjEntity("NewTable");
         objEntity.setDbEntity(dbEntity);
@@ -76,11 +76,8 @@ public class AddColumnToModelTest extend
         assertTrue(token instanceof AddColumnToModel);
         execute(token);
         assertEquals(1, objEntity.getAttributes().size());
-        assertEquals("java.lang.String", objEntity
-                .getAttributes()
-                .iterator()
-                .next()
-                .getType());
+        assertEquals("java.lang.String", objEntity.getAttributes().iterator()
+                .next().getType());
 
         // clear up
         map.removeObjEntity(objEntity.getName(), true);
@@ -90,8 +87,8 @@ public class AddColumnToModelTest extend
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/CreateTableToModelTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/CreateTableToModelTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/CreateTableToModelTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/CreateTableToModelTest.java
 Sat Oct 20 23:40:15 2012
@@ -32,7 +32,7 @@ public class CreateTableToModelTest exte
 
     public void testAddTable() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -55,7 +55,8 @@ public class CreateTableToModelTest exte
         if (token.getDirection().isToDb()) {
             token = token.createReverse(mergerFactory());
         }
-        assertTrue(token.getClass().getName(), token instanceof 
CreateTableToModel);
+        assertTrue(token.getClass().getName(),
+                token instanceof CreateTableToModel);
 
         execute(token);
 
@@ -64,29 +65,25 @@ public class CreateTableToModelTest exte
             if (candiate.getDbEntity() == null) {
                 continue;
             }
-            if 
(candiate.getDbEntity().getName().equalsIgnoreCase(dbEntity.getName())) {
+            if (candiate.getDbEntity().getName()
+                    .equalsIgnoreCase(dbEntity.getName())) {
                 objEntity = candiate;
                 break;
             }
         }
         assertNotNull(objEntity);
 
-        assertEquals(objEntity.getClassName(), map.getDefaultPackage()
-                + "."
+        assertEquals(objEntity.getClassName(), map.getDefaultPackage() + "."
                 + objEntity.getName());
         assertEquals(objEntity.getSuperClassName(), 
map.getDefaultSuperclass());
-        assertEquals(objEntity.getClientClassName(), 
map.getDefaultClientPackage()
-                + "."
-                + objEntity.getName());
-        assertEquals(objEntity.getClientSuperClassName(), map
-                .getDefaultClientSuperclass());
+        assertEquals(objEntity.getClientClassName(),
+                map.getDefaultClientPackage() + "." + objEntity.getName());
+        assertEquals(objEntity.getClientSuperClassName(),
+                map.getDefaultClientSuperclass());
 
         assertEquals(1, objEntity.getAttributes().size());
-        assertEquals("java.lang.String", objEntity
-                .getAttributes()
-                .iterator()
-                .next()
-                .getType());
+        assertEquals("java.lang.String", objEntity.getAttributes().iterator()
+                .next().getType());
 
         // clear up
         // fix psql case issue
@@ -98,8 +95,8 @@ public class CreateTableToModelTest exte
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropColumnToModelTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropColumnToModelTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropColumnToModelTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropColumnToModelTest.java
 Sat Oct 20 23:40:15 2012
@@ -37,7 +37,7 @@ public class DropColumnToModelTest exten
     public void testSimpleColumn() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -53,8 +53,8 @@ public class DropColumnToModelTest exten
 
         map.addDbEntity(dbEntity);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         ObjEntity objEntity = new ObjEntity("NewTable");
         objEntity.setDbEntity(dbEntity);
@@ -87,15 +87,15 @@ public class DropColumnToModelTest exten
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     public void testRemoveFKColumnWithoutRelationshipInDb() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
         dropTableIfPresent(node, "NEW_TABLE2");
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity1 = new DbEntity("NEW_TABLE");
 
@@ -124,8 +124,8 @@ public class DropColumnToModelTest exten
 
         map.addDbEntity(dbEntity2);
 
-        assertTokensAndExecute(node, map, 2, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(2, 0);
+        assertTokensAndExecute(0, 0);
 
         // force drop fk column in db
         execute(mergerFactory().createDropColumnToDb(dbEntity2, e2col2));

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelTest.java
 Sat Oct 20 23:40:15 2012
@@ -38,7 +38,7 @@ public class DropRelationshipToModelTest
         dropTableIfPresent(node, "NEW_TABLE");
         dropTableIfPresent(node, "NEW_TABLE2");
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity1 = new DbEntity("NEW_TABLE");
 
@@ -83,8 +83,8 @@ public class DropRelationshipToModelTest
         assertSame(rel1To2, rel2To1.getReverseRelationship());
         assertSame(rel2To1, rel1To2.getReverseRelationship());
 
-        assertTokensAndExecute(node, map, 4, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(4, 0);
+        assertTokensAndExecute(0, 0);
 
         // create ObjEntities
         ObjEntity objEntity1 = new ObjEntity("NewTable");
@@ -139,7 +139,8 @@ public class DropRelationshipToModelTest
         // try do use the merger to remove the relationship in the model
         tokens = createMergeTokens();
         assertTokens(tokens, 2, 0);
-        // TODO: reversing the following two tokens should also reverse the 
order
+        // TODO: reversing the following two tokens should also reverse the
+        // order
         MergerToken token0 = tokens.get(0).createReverse(mergerFactory());
         MergerToken token1 = tokens.get(1).createReverse(mergerFactory());
         assertTrue(token0 instanceof DropColumnToModel);

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropTableToModelTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropTableToModelTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropTableToModelTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/DropTableToModelTest.java
 Sat Oct 20 23:40:15 2012
@@ -33,7 +33,7 @@ public class DropTableToModelTest extend
 
     public void testDropTable() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -49,8 +49,8 @@ public class DropTableToModelTest extend
 
         map.addDbEntity(dbEntity);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         ObjEntity objEntity = new ObjEntity("NewTable");
         objEntity.setDbEntity(dbEntity);
@@ -83,7 +83,7 @@ public class DropTableToModelTest extend
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
     }
 
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java
 Sat Oct 20 23:40:15 2012
@@ -40,189 +40,175 @@ import org.apache.cayenne.unit.di.server
 
 public abstract class MergeCase extends ServerCase {
 
-       @Inject
-       private DBHelper dbHelper;
+    @Inject
+    private DBHelper dbHelper;
 
-       @Inject
-       private ServerRuntime runtime;
+    @Inject
+    private ServerRuntime runtime;
 
-       @Inject
-       private UnitDbAdapter accessStackAdapter;
+    @Inject
+    private UnitDbAdapter accessStackAdapter;
 
-       @Inject
-       private ServerCaseDataSourceFactory dataSourceFactory;
-
-       @Inject
-       protected EntityResolver resolver;
-
-       @Inject
-       protected DataNode node;
-
-       protected DataMap map;
-
-       private static List<String> TABLE_NAMES = Arrays.asList("ARTIST",
-                       "PAINTING", "NEW_TABLE", "NEW_TABLE2");
-
-       @Override
-       protected void setUpAfterInjection() throws Exception {
-
-               dbHelper.deleteAll("ARTGROUP");
-               dbHelper.deleteAll("PAINTING_INFO");
-               dbHelper.deleteAll("PAINTING");
-               dbHelper.deleteAll("ARTIST_EXHIBIT");
-               dbHelper.deleteAll("ARTIST_GROUP");
-               dbHelper.deleteAll("ARTIST");
-               dbHelper.deleteAll("EXHIBIT");
-               dbHelper.deleteAll("GALLERY");
-
-               // this map can't be safely modified in this test, as it is 
reset by DI
-               // container
-               // on every test
-               map = runtime.getDataDomain().getDataMap("testmap");
-
-               filterDataMap();
-
-               List<MergerToken> tokens = createMergeTokens();
-               execute(tokens);
-
-               assertTokensAndExecute(0, 0);
-       }
-
-       protected DbMerger createMerger() {
-               return new DbMerger() {
-
-                       @Override
-                       public boolean includeTableName(String tableName) {
-                               return 
TABLE_NAMES.contains(tableName.toUpperCase());
-                       }
-               };
-       }
-
-       protected List<MergerToken> createMergeTokens() {
-               return createMerger().createMergeTokens(node, map);
-       }
-
-       /**
-        * Remote binary pk {@link DbEntity} for {@link DbAdapter} not 
supporting
-        * that and so on.
-        */
-       private void filterDataMap() {
-               // copied from AbstractAccessStack.dbEntitiesInInsertOrder
-               boolean excludeBinPK = accessStackAdapter.supportsBinaryPK();
-
-               if (!excludeBinPK) {
-                       return;
-               }
-
-               List<DbEntity> entitiesToRemove = new ArrayList<DbEntity>();
-
-               for (DbEntity ent : map.getDbEntities()) {
-                       for (DbAttribute attr : ent.getAttributes()) {
-                               // check for BIN PK or FK to BIN Pk
-                               if (attr.getType() == Types.BINARY
-                                               || attr.getType() == 
Types.VARBINARY
-                                               || attr.getType() == 
Types.LONGVARBINARY) {
-
-                                       if (attr.isPrimaryKey() || 
attr.isForeignKey()) {
-                                               entitiesToRemove.add(ent);
-                                               break;
-                                       }
-                               }
-                       }
-               }
-
-               for (DbEntity e : entitiesToRemove) {
-                       map.removeDbEntity(e.getName(), true);
-               }
-       }
-
-       protected void execute(List<MergerToken> tokens) throws Exception {
-               MergerContext mergerContext = new ExecutingMergerContext(map, 
node);
-               for (MergerToken tok : tokens) {
-                       tok.execute(mergerContext);
-               }
-       }
-
-       protected void execute(MergerToken token) throws Exception {
-               MergerContext mergerContext = new ExecutingMergerContext(map, 
node);
-               token.execute(mergerContext);
-       }
-
-       private void executeSql(String sql) throws Exception {
-               Connection conn = dataSourceFactory.getSharedDataSource()
-                               .getConnection();
-
-               try {
-                       Statement st = conn.createStatement();
-
-                       try {
-                               st.execute(sql);
-                       } finally {
-                               st.close();
-                       }
-               }
-
-               finally {
-                       conn.close();
-               }
-       }
-
-       protected void assertTokens(List<MergerToken> tokens, int expectedToDb,
-                       int expectedToModel) {
-               int actualToDb = 0;
-               int actualToModel = 0;
-               for (MergerToken token : tokens) {
-                       if (token.getDirection().isToDb()) {
-                               actualToDb++;
-                       } else if (token.getDirection().isToModel()) {
-                               actualToModel++;
-                       }
-               }
-
-               assertEquals("tokens to db", expectedToDb, actualToDb);
-               assertEquals("tokens to model", expectedToModel, actualToModel);
-       }
-
-       protected void assertTokensAndExecute(DataNode node, DataMap map,
-                       int expectedToDb, int expectedToModel) {
-               List<MergerToken> tokens = createMergeTokens();
-
-               assertTokens(tokens, expectedToDb, expectedToModel);
-               if (!tokens.isEmpty()) {
-                       try {
-                               execute(tokens);
-                       } catch (Exception e) {
-                               fail(e.getMessage());
-                       }
-               }
-       }
-
-       protected void assertTokensAndExecute(int expectedToDb, int 
expectedToModel) {
-               List<MergerToken> tokens = createMergeTokens();
-
-               assertTokens(tokens, expectedToDb, expectedToModel);
-               if (!tokens.isEmpty()) {
-                       try {
-                               execute(tokens);
-                       } catch (Exception e) {
-                               fail(e.getMessage());
-                       }
-               }
-       }
-
-       protected MergerFactory mergerFactory() {
-               return node.getAdapter().mergerFactory();
-       }
-
-       protected void dropTableIfPresent(DataNode node, String tableName) {
-               DbEntity entity = new DbEntity(tableName);
-               AbstractToDbToken t = (AbstractToDbToken) mergerFactory()
-                               .createDropTableToDb(entity);
-               try {
-                       for (String sql : t.createSql(node.getAdapter())) {
-                               executeSql(sql);
-                       }
-               } catch (Exception e) {
-               }
-       }
+    @Inject
+    private ServerCaseDataSourceFactory dataSourceFactory;
+
+    @Inject
+    protected EntityResolver resolver;
+
+    @Inject
+    protected DataNode node;
+
+    protected DataMap map;
+
+    private static List<String> TABLE_NAMES = Arrays.asList("ARTIST",
+            "PAINTING", "NEW_TABLE", "NEW_TABLE2");
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+
+        dbHelper.deleteAll("ARTGROUP");
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST_GROUP");
+        dbHelper.deleteAll("ARTIST");
+        dbHelper.deleteAll("EXHIBIT");
+        dbHelper.deleteAll("GALLERY");
+
+        // this map can't be safely modified in this test, as it is reset by DI
+        // container
+        // on every test
+        map = runtime.getDataDomain().getDataMap("testmap");
+
+        filterDataMap();
+
+        List<MergerToken> tokens = createMergeTokens();
+        execute(tokens);
+
+        assertTokensAndExecute(0, 0);
+    }
+
+    protected DbMerger createMerger() {
+        return new DbMerger() {
+
+            @Override
+            public boolean includeTableName(String tableName) {
+                return TABLE_NAMES.contains(tableName.toUpperCase());
+            }
+        };
+    }
+
+    protected List<MergerToken> createMergeTokens() {
+        return createMerger().createMergeTokens(node, map);
+    }
+
+    /**
+     * Remote binary pk {@link DbEntity} for {@link DbAdapter} not supporting
+     * that and so on.
+     */
+    private void filterDataMap() {
+        // copied from AbstractAccessStack.dbEntitiesInInsertOrder
+        boolean excludeBinPK = accessStackAdapter.supportsBinaryPK();
+
+        if (!excludeBinPK) {
+            return;
+        }
+
+        List<DbEntity> entitiesToRemove = new ArrayList<DbEntity>();
+
+        for (DbEntity ent : map.getDbEntities()) {
+            for (DbAttribute attr : ent.getAttributes()) {
+                // check for BIN PK or FK to BIN Pk
+                if (attr.getType() == Types.BINARY
+                        || attr.getType() == Types.VARBINARY
+                        || attr.getType() == Types.LONGVARBINARY) {
+
+                    if (attr.isPrimaryKey() || attr.isForeignKey()) {
+                        entitiesToRemove.add(ent);
+                        break;
+                    }
+                }
+            }
+        }
+
+        for (DbEntity e : entitiesToRemove) {
+            map.removeDbEntity(e.getName(), true);
+        }
+    }
+
+    protected void execute(List<MergerToken> tokens) throws Exception {
+        MergerContext mergerContext = new ExecutingMergerContext(map, node);
+        for (MergerToken tok : tokens) {
+            tok.execute(mergerContext);
+        }
+    }
+
+    protected void execute(MergerToken token) throws Exception {
+        MergerContext mergerContext = new ExecutingMergerContext(map, node);
+        token.execute(mergerContext);
+    }
+
+    private void executeSql(String sql) throws Exception {
+        Connection conn = dataSourceFactory.getSharedDataSource()
+                .getConnection();
+
+        try {
+            Statement st = conn.createStatement();
+
+            try {
+                st.execute(sql);
+            } finally {
+                st.close();
+            }
+        }
+
+        finally {
+            conn.close();
+        }
+    }
+
+    protected void assertTokens(List<MergerToken> tokens, int expectedToDb,
+            int expectedToModel) {
+        int actualToDb = 0;
+        int actualToModel = 0;
+        for (MergerToken token : tokens) {
+            if (token.getDirection().isToDb()) {
+                actualToDb++;
+            } else if (token.getDirection().isToModel()) {
+                actualToModel++;
+            }
+        }
+
+        assertEquals("tokens to db", expectedToDb, actualToDb);
+        assertEquals("tokens to model", expectedToModel, actualToModel);
+    }
+
+    protected void assertTokensAndExecute(int expectedToDb, int 
expectedToModel) {
+        List<MergerToken> tokens = createMergeTokens();
+
+        assertTokens(tokens, expectedToDb, expectedToModel);
+        if (!tokens.isEmpty()) {
+            try {
+                execute(tokens);
+            } catch (Exception e) {
+                fail(e.getMessage());
+            }
+        }
+    }
+
+    protected MergerFactory mergerFactory() {
+        return node.getAdapter().mergerFactory();
+    }
+
+    protected void dropTableIfPresent(DataNode node, String tableName) {
+        DbEntity entity = new DbEntity(tableName);
+        AbstractToDbToken t = (AbstractToDbToken) mergerFactory()
+                .createDropTableToDb(entity);
+        try {
+            for (String sql : t.createSql(node.getAdapter())) {
+                executeSql(sql);
+            }
+        } catch (Exception e) {
+        }
+    }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergerFactoryTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergerFactoryTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergerFactoryTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergerFactoryTest.java
 Sat Oct 20 23:40:15 2012
@@ -48,15 +48,15 @@ public class MergerFactoryTest extends M
         column.setMandatory(false);
         column.setMaxLength(10);
         dbEntity.addAttribute(column);
-        assertTokensAndExecute(node, map, 1, 0);
+        assertTokensAndExecute(1, 0);
 
         // try merge once more to check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // remove it from model and db
         dbEntity.removeAttribute(column.getName());
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     public void testChangeVarcharSizeToDb() throws Exception {
@@ -69,24 +69,24 @@ public class MergerFactoryTest extends M
         column.setMandatory(false);
         column.setMaxLength(10);
         dbEntity.addAttribute(column);
-        assertTokensAndExecute(node, map, 1, 0);
+        assertTokensAndExecute(1, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // change size
         column.setMaxLength(20);
 
         // merge to db
-        assertTokensAndExecute(node, map, 1, 0);
+        assertTokensAndExecute(1, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // clean up
         dbEntity.removeAttribute(column.getName());
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     public void testMultipleTokensToDb() throws Exception {
@@ -102,32 +102,32 @@ public class MergerFactoryTest extends M
         column2.setMaxLength(10);
         dbEntity.addAttribute(column2);
 
-        assertTokensAndExecute(node, map, 2, 0);
+        assertTokensAndExecute(2, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // change size
         column1.setMaxLength(20);
         column2.setMaxLength(30);
 
         // merge to db
-        assertTokensAndExecute(node, map, 2, 0);
+        assertTokensAndExecute(2, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // clean up
         dbEntity.removeAttribute(column1.getName());
         dbEntity.removeAttribute(column2.getName());
-        assertTokensAndExecute(node, map, 2, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(2, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     public void testAddTableToDb() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -143,8 +143,8 @@ public class MergerFactoryTest extends M
 
         map.addDbEntity(dbEntity);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         ObjEntity objEntity = new ObjEntity("NewTable");
         objEntity.setDbEntity(dbEntity);
@@ -169,14 +169,14 @@ public class MergerFactoryTest extends M
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     public void testAddForeignKeyWithTable() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -215,15 +215,15 @@ public class MergerFactoryTest extends M
         r2.addJoin(new DbJoin(r2, "ARTIST_ID", "ARTIST_ID"));
         artistDbEntity.addRelationship(r2);
 
-        assertTokensAndExecute(node, map, 2, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(2, 0);
+        assertTokensAndExecute(0, 0);
 
         // remove relationships
         dbEntity.removeRelationship(r1.getName());
         artistDbEntity.removeRelationship(r2.getName());
         resolver.clearCache();
-        assertTokensAndExecute(node, map, 1, 1);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 1);
+        assertTokensAndExecute(0, 0);
 
         // clear up
         // map.removeObjEntity(objEntity.getName(), true);
@@ -233,14 +233,14 @@ public class MergerFactoryTest extends M
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     public void testAddForeignKeyAfterTable() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
 
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity = new DbEntity("NEW_TABLE");
 
@@ -263,8 +263,8 @@ public class MergerFactoryTest extends M
         DbEntity artistDbEntity = map.getDbEntity("ARTIST");
         assertNotNull(artistDbEntity);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         // relation from new_table to artist
         DbRelationship r1 = new DbRelationship("toArtistR1");
@@ -282,15 +282,15 @@ public class MergerFactoryTest extends M
         r2.addJoin(new DbJoin(r2, "ARTIST_ID", "ARTIST_ID"));
         artistDbEntity.addRelationship(r2);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         // remove relationships
         dbEntity.removeRelationship(r1.getName());
         artistDbEntity.removeRelationship(r2.getName());
         resolver.clearCache();
-        assertTokensAndExecute(node, map, 1, 1);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 1);
+        assertTokensAndExecute(0, 0);
 
         // clear up
         // map.removeObjEntity(objEntity.getName(), true);
@@ -300,7 +300,7 @@ public class MergerFactoryTest extends M
         assertNull(map.getDbEntity(dbEntity.getName()));
         assertFalse(map.getDbEntities().contains(dbEntity));
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbTest.java
 Sat Oct 20 23:40:15 2012
@@ -40,26 +40,26 @@ public class SetAllowNullToDbTest extend
             column.setMandatory(true);
             column.setMaxLength(10);
             dbEntity.addAttribute(column);
-            assertTokensAndExecute(node, map, 2, 0);
+            assertTokensAndExecute(2, 0);
 
             // check that is was merged
-            assertTokensAndExecute(node, map, 0, 0);
+            assertTokensAndExecute(0, 0);
 
             // set null
             column.setMandatory(false);
 
             // merge to db
-            assertTokensAndExecute(node, map, 1, 0);
+            assertTokensAndExecute(1, 0);
 
             // check that is was merged
-            assertTokensAndExecute(node, map, 0, 0);
+            assertTokensAndExecute(0, 0);
 
             // clean up
         }
         finally {
             dbEntity.removeAttribute(column.getName());
-            assertTokensAndExecute(node, map, 1, 0);
-            assertTokensAndExecute(node, map, 0, 0);
+            assertTokensAndExecute(1, 0);
+            assertTokensAndExecute(0, 0);
         }
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetNotNullToDbTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetNotNullToDbTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetNotNullToDbTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetNotNullToDbTest.java
 Sat Oct 20 23:40:15 2012
@@ -53,24 +53,24 @@ public class SetNotNullToDbTest extends 
         column.setMandatory(false);
         column.setMaxLength(10);
         dbEntity.addAttribute(column);
-        assertTokensAndExecute(node, map, 1, 0);
+        assertTokensAndExecute(1, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // set not null
         column.setMandatory(true);
 
         // merge to db
-        assertTokensAndExecute(node, map, 1, 0);
+        assertTokensAndExecute(1, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // clean up
         dbEntity.removeAttribute(column.getName());
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbTest.java
 Sat Oct 20 23:40:15 2012
@@ -30,7 +30,7 @@ public class SetPrimaryKeyToDbTest exten
 
     public void test() throws Exception {
         dropTableIfPresent(node, "NEW_TABLE");
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         DbEntity dbEntity1 = new DbEntity("NEW_TABLE");
 
@@ -40,20 +40,20 @@ public class SetPrimaryKeyToDbTest exten
         dbEntity1.addAttribute(e1col1);
         map.addDbEntity(dbEntity1);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
 
         DbAttribute e1col2 = new DbAttribute("ID2", Types.INTEGER, dbEntity1);
         e1col2.setMandatory(true);
         dbEntity1.addAttribute(e1col2);
 
-        assertTokensAndExecute(node, map, 2, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(2, 0);
+        assertTokensAndExecute(0, 0);
 
         e1col1.setPrimaryKey(false);
         e1col2.setPrimaryKey(true);
 
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/ValueForNullTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/ValueForNullTest.java?rev=1400533&r1=1400532&r2=1400533&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/ValueForNullTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/ValueForNullTest.java
 Sat Oct 20 23:40:15 2012
@@ -68,7 +68,7 @@ public class ValueForNullTest extends Me
         dbEntity.addAttribute(column);
         assertTrue(dbEntity.getAttributes().contains(column));
         assertEquals(column, dbEntity.getAttribute(column.getName()));
-        assertTokensAndExecute(node, map, 1, 0);
+        assertTokensAndExecute(1, 0);
 
         // need obj attr to be able to query
         ObjAttribute objAttr = new ObjAttribute("newcol2");
@@ -76,16 +76,16 @@ public class ValueForNullTest extends Me
         objEntity.addAttribute(objAttr);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // set not null
         column.setMandatory(true);
 
         // merge to db
-        assertTokensAndExecute(node, map, 2, 0);
+        assertTokensAndExecute(2, 0);
 
         // check that is was merged
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(0, 0);
 
         // check values for null
         Expression qual = ExpressionFactory.matchExp(
@@ -97,8 +97,8 @@ public class ValueForNullTest extends Me
 
         // clean up
         dbEntity.removeAttribute(column.getName());
-        assertTokensAndExecute(node, map, 1, 0);
-        assertTokensAndExecute(node, map, 0, 0);
+        assertTokensAndExecute(1, 0);
+        assertTokensAndExecute(0, 0);
     }
 
     @Override


Reply via email to