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 2011/05/14 12:47:22 UTC

svn commit: r1103021 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access: DbLoaderPartialTest.java DbLoaderTest.java

Author: aadamchik
Date: Sat May 14 10:47:22 2011
New Revision: 1103021

URL: http://svn.apache.org/viewvc?rev=1103021&view=rev
Log:
CAY-1564 CayenneCase unit tests conversion(4)

    patch by Dzmitry Kazimirchyk - DbLoaderTest + some lifecycle improvements

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderPartialTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderPartialTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderPartialTest.java?rev=1103021&r1=1103020&r2=1103021&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderPartialTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderPartialTest.java Sat May 14 10:47:22 2011
@@ -74,6 +74,11 @@ public class DbLoaderPartialTest extends
                 });
     }
 
+    @Override
+    protected void tearDownBeforeInjection() throws Exception {
+        loader.getConnection().close();
+    }
+
     /**
      * Tests that FKs are properly loaded when the relationship source is not loaded. See
      * CAY-479. This test will perform two reverse engineers. The second reverse engineer
@@ -83,47 +88,40 @@ public class DbLoaderPartialTest extends
      */
     public void testPartialLoad() throws Exception {
 
-        try {
-
-            DataMap map = new DataMap();
-            String tableLabel = adapter.tableTypeForTable();
+        DataMap map = new DataMap();
+        String tableLabel = adapter.tableTypeForTable();
 
-            loader.loadDataMapFromDB(null, "%", new String[] {
-                tableLabel
-            }, map);
-
-            Collection<?> rels = getDbEntity(map, "ARTIST").getRelationships();
-            assertNotNull(rels);
-            int artistRels = rels.size();
-
-            rels = getDbEntity(map, "GALLERY").getRelationships();
-            assertNotNull(rels);
-            int galleryRels = rels.size();
-
-            rels = getDbEntity(map, "PAINTING").getRelationships();
-            assertNotNull(rels);
-            int paintingRels = rels.size();
-
-            loader.loadDataMapFromDB(null, "%", new String[] {
-                tableLabel
-            }, map);
-
-            rels = getDbEntity(map, "ARTIST").getRelationships();
-            assertNotNull(rels);
-            assertEquals(artistRels, rels.size());
-
-            rels = getDbEntity(map, "GALLERY").getRelationships();
-            assertNotNull(rels);
-            assertEquals(galleryRels, rels.size());
-
-            rels = getDbEntity(map, "PAINTING").getRelationships();
-            assertNotNull(rels);
-            assertEquals(paintingRels, rels.size());
-
-        }
-        finally {
-            loader.getConnection().close();
-        }
+        loader.loadDataMapFromDB(null, "%", new String[] {
+            tableLabel
+        }, map);
+
+        Collection<?> rels = getDbEntity(map, "ARTIST").getRelationships();
+        assertNotNull(rels);
+        int artistRels = rels.size();
+
+        rels = getDbEntity(map, "GALLERY").getRelationships();
+        assertNotNull(rels);
+        int galleryRels = rels.size();
+
+        rels = getDbEntity(map, "PAINTING").getRelationships();
+        assertNotNull(rels);
+        int paintingRels = rels.size();
+
+        loader.loadDataMapFromDB(null, "%", new String[] {
+            tableLabel
+        }, map);
+
+        rels = getDbEntity(map, "ARTIST").getRelationships();
+        assertNotNull(rels);
+        assertEquals(artistRels, rels.size());
+
+        rels = getDbEntity(map, "GALLERY").getRelationships();
+        assertNotNull(rels);
+        assertEquals(galleryRels, rels.size());
+
+        rels = getDbEntity(map, "PAINTING").getRelationships();
+        assertNotNull(rels);
+        assertEquals(paintingRels, rels.size());
     }
 
     private DbEntity getDbEntity(DataMap map, String name) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java?rev=1103021&r1=1103020&r2=1103021&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java Sat May 14 10:47:22 2011
@@ -24,113 +24,115 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
+import javax.sql.DataSource;
+
+import org.apache.cayenne.configuration.server.ServerRuntime;
+import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.TypesMapping;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.AccessStackAdapter;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DbLoaderTest extends ServerCase {
+
+    @Inject
+    private ServerRuntime runtime;
+
+    @Inject
+    private DbAdapter adapter;
+
+    @Inject
+    private DataSource dataSource;
 
-public class DbLoaderTest extends CayenneCase {
+    @Inject
+    private AccessStackAdapter accessStackAdapter;
 
-    protected DbLoader loader;
+    private DbLoader loader;
 
     @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        loader = new DbLoader(getConnection(), getNode().getAdapter(), null);
+    protected void setUpAfterInjection() throws Exception {
+        loader = new DbLoader(dataSource.getConnection(), adapter, null);
+    }
+
+    @Override
+    protected void tearDownBeforeInjection() throws Exception {
+        loader.getConnection().close();
     }
 
     public void testGetTableTypes() throws Exception {
-        try {
-            List tableTypes = loader.getTableTypes();
 
-            assertNotNull(tableTypes);
+        List<?> tableTypes = loader.getTableTypes();
 
-            String tableLabel = getNode().getAdapter().tableTypeForTable();
-            if (tableLabel != null) {
-                assertTrue(
-                        "Missing type for table '" + tableLabel + "' - " + tableTypes,
-                        tableTypes.contains(tableLabel));
-            }
+        assertNotNull(tableTypes);
 
-            String viewLabel = getNode().getAdapter().tableTypeForView();
-            if (viewLabel != null) {
-                assertTrue(
-                        "Missing type for view '" + viewLabel + "' - " + tableTypes,
-                        tableTypes.contains(viewLabel));
-            }
-        }
-        finally {
-            loader.getConnection().close();
+        String tableLabel = adapter.tableTypeForTable();
+        if (tableLabel != null) {
+            assertTrue(
+                    "Missing type for table '" + tableLabel + "' - " + tableTypes,
+                    tableTypes.contains(tableLabel));
+        }
+
+        String viewLabel = adapter.tableTypeForView();
+        if (viewLabel != null) {
+            assertTrue(
+                    "Missing type for view '" + viewLabel + "' - " + tableTypes,
+                    tableTypes.contains(viewLabel));
         }
     }
 
     public void testGetTables() throws Exception {
-        try {
 
-            String tableLabel = getNode().getAdapter().tableTypeForTable();
+        String tableLabel = adapter.tableTypeForTable();
 
-            List<DbEntity> tables = loader.getTables(null, null, "%", new String[] {
-                tableLabel
-            });
+        List<DbEntity> tables = loader.getTables(null, null, "%", new String[] {
+            tableLabel
+        });
 
-            assertNotNull(tables);
+        assertNotNull(tables);
 
-            boolean foundArtist = false;
+        boolean foundArtist = false;
 
-            for (DbEntity table : tables) {
-                if ("ARTIST".equalsIgnoreCase(table.getName())) {
-                    foundArtist = true;
-                    break;
-                }
+        for (DbEntity table : tables) {
+            if ("ARTIST".equalsIgnoreCase(table.getName())) {
+                foundArtist = true;
+                break;
             }
-
-            assertTrue("'ARTIST' is missing from the table list: " + tables, foundArtist);
-        }
-        finally {
-            loader.getConnection().close();
         }
+
+        assertTrue("'ARTIST' is missing from the table list: " + tables, foundArtist);
     }
 
     public void testLoadWithMeaningfulPK() throws Exception {
-        try {
 
-            DataMap map = new DataMap();
-            String tableLabel = getNode().getAdapter().tableTypeForTable();
+        DataMap map = new DataMap();
+        String tableLabel = adapter.tableTypeForTable();
 
-            loader.setCreatingMeaningfulPK(true);
-            
-            List<DbEntity> testLoader = loader.getTables(
-                    null,
-                    null,
-                    "artist",
-                    new String[] {
-                        tableLabel
-                    });
-            if(testLoader.size()==0){
-                testLoader = loader.getTables(
-                        null,
-                        null,
-                        "ARTIST",
-                        new String[] {
-                            tableLabel
-                        });
-            }
-            
-            loader.loadDbEntities(map, testLoader);
+        loader.setCreatingMeaningfulPK(true);
 
-            loader.loadObjEntities(map);
-            ObjEntity artist = map.getObjEntity("Artist");
-            assertNotNull(artist);
-            ObjAttribute id = (ObjAttribute) artist.getAttribute("artistId");
-            assertNotNull(id);
-        }
-        finally {
-            loader.getConnection().close();
+        List<DbEntity> testLoader = loader.getTables(null, null, "artist", new String[] {
+            tableLabel
+        });
+        if (testLoader.size() == 0) {
+            testLoader = loader.getTables(null, null, "ARTIST", new String[] {
+                tableLabel
+            });
         }
+
+        loader.loadDbEntities(map, testLoader);
+
+        loader.loadObjEntities(map);
+        ObjEntity artist = map.getObjEntity("Artist");
+        assertNotNull(artist);
+        ObjAttribute id = (ObjAttribute) artist.getAttribute("artistId");
+        assertNotNull(id);
     }
 
     /**
@@ -139,88 +141,90 @@ public class DbLoaderTest extends Cayenn
      * (Sybase).
      */
     public void testLoad() throws Exception {
-        try {
-            boolean supportsUnique = getNode().getAdapter().supportsUniqueConstraints();
-            boolean supportsLobs = getAccessStackAdapter().supportsLobs();
-            boolean supportsFK = getAccessStackAdapter().supportsFKConstraints();
-
-            DataMap map = new DataMap();
-            String tableLabel = getNode().getAdapter().tableTypeForTable();
-
-            // *** TESTING THIS ***
-            loader.loadDbEntities(map, loader.getTables(null, null, "%", new String[] {
-                tableLabel
-            }));
-
-            assertDbEntities(map);
-
-            if (supportsLobs) {
-                assertLobDbEntities(map);
-            }
 
-            // *** TESTING THIS ***
-            loader.loadDbRelationships(map);
-
-            if (supportsFK) {
-                Collection rels = getDbEntity(map, "ARTIST").getRelationships();
-                assertNotNull(rels);
-                assertTrue(rels.size() > 0);
-
-                // test one-to-one
-                rels = getDbEntity(map, "PAINTING").getRelationships();
-                assertNotNull(rels);
-
-                // find relationship to PAINTING_INFO
-                DbRelationship oneToOne = null;
-                Iterator it = rels.iterator();
-                while (it.hasNext()) {
-                    DbRelationship rel = (DbRelationship) it.next();
-                    if ("PAINTING_INFO".equalsIgnoreCase(rel.getTargetEntityName())) {
-                        oneToOne = rel;
-                        break;
-                    }
-                }
-
-                assertNotNull("No relationship to PAINTING_INFO", oneToOne);
-                assertFalse("Relationship to PAINTING_INFO must be to-one", oneToOne
-                        .isToMany());
-                assertTrue("Relationship to PAINTING_INFO must be to-one", oneToOne
-                        .isToDependentPK());
-
-                // test UNIQUE only if FK is supported...
-                if (supportsUnique) {
-                    assertUniqueConstraintsInRelationships(map);
+        boolean supportsUnique = runtime
+                .getDataDomain()
+                .getDataNodes()
+                .iterator()
+                .next()
+                .getAdapter()
+                .supportsUniqueConstraints();
+        boolean supportsLobs = accessStackAdapter.supportsLobs();
+        boolean supportsFK = accessStackAdapter.supportsFKConstraints();
+
+        DataMap map = new DataMap();
+        String tableLabel = adapter.tableTypeForTable();
+
+        // *** TESTING THIS ***
+        loader.loadDbEntities(map, loader.getTables(null, null, "%", new String[] {
+            tableLabel
+        }));
+
+        assertDbEntities(map);
+
+        if (supportsLobs) {
+            assertLobDbEntities(map);
+        }
+
+        // *** TESTING THIS ***
+        loader.loadDbRelationships(map);
+
+        if (supportsFK) {
+            Collection<?> rels = getDbEntity(map, "ARTIST").getRelationships();
+            assertNotNull(rels);
+            assertTrue(rels.size() > 0);
+
+            // test one-to-one
+            rels = getDbEntity(map, "PAINTING").getRelationships();
+            assertNotNull(rels);
+
+            // find relationship to PAINTING_INFO
+            DbRelationship oneToOne = null;
+            Iterator<?> it = rels.iterator();
+            while (it.hasNext()) {
+                DbRelationship rel = (DbRelationship) it.next();
+                if ("PAINTING_INFO".equalsIgnoreCase(rel.getTargetEntityName())) {
+                    oneToOne = rel;
+                    break;
                 }
             }
 
-            // *** TESTING THIS ***
-            loader.setCreatingMeaningfulPK(false);
-            loader.loadObjEntities(map);
-
-            ObjEntity ae = map.getObjEntity("Artist");
-            assertNotNull(ae);
-            assertEquals("Artist", ae.getName());
-            // assert primary key is not an attribute
-            assertNull(ae.getAttribute("artistId"));
-            if (supportsLobs) {
-                assertLobObjEntities(map);
-            }
-
-            if (supportsFK) {
-                Collection rels1 = ae.getRelationships();
-                assertNotNull(rels1);
-                assertTrue(rels1.size() > 0);
-            }
-
-            // now when the map is loaded, test
-            // various things
-            // selectively check how different types were processed
-            if (getAccessStackAdapter().supportsColumnTypeReengineering()) {
-                checkTypes(map);
+            assertNotNull("No relationship to PAINTING_INFO", oneToOne);
+            assertFalse("Relationship to PAINTING_INFO must be to-one", oneToOne
+                    .isToMany());
+            assertTrue("Relationship to PAINTING_INFO must be to-one", oneToOne
+                    .isToDependentPK());
+
+            // test UNIQUE only if FK is supported...
+            if (supportsUnique) {
+                assertUniqueConstraintsInRelationships(map);
             }
         }
-        finally {
-            loader.getConnection().close();
+
+        // *** TESTING THIS ***
+        loader.setCreatingMeaningfulPK(false);
+        loader.loadObjEntities(map);
+
+        ObjEntity ae = map.getObjEntity("Artist");
+        assertNotNull(ae);
+        assertEquals("Artist", ae.getName());
+        // assert primary key is not an attribute
+        assertNull(ae.getAttribute("artistId"));
+        if (supportsLobs) {
+            assertLobObjEntities(map);
+        }
+
+        if (supportsFK) {
+            Collection<?> rels1 = ae.getRelationships();
+            assertNotNull(rels1);
+            assertTrue(rels1.size() > 0);
+        }
+
+        // now when the map is loaded, test
+        // various things
+        // selectively check how different types were processed
+        if (accessStackAdapter.supportsColumnTypeReengineering()) {
+            checkTypes(map);
         }
     }
 
@@ -301,7 +305,14 @@ public class DbLoaderTest extends Cayenn
     }
 
     private DataMap originalMap() {
-        return getNode().getDataMaps().iterator().next();
+        return runtime
+                .getDataDomain()
+                .getDataNodes()
+                .iterator()
+                .next()
+                .getDataMaps()
+                .iterator()
+                .next();
     }
 
     /**