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 2016/12/14 18:29:54 UTC

[5/9] cayenne git commit: New DbLoader for dbsync utils - loading process split in independent small steps - DbLoader always return new DataMap, it doesn't accept it from outside

New DbLoader for dbsync utils
 - loading process split in independent small steps
 - DbLoader always return new DataMap, it doesn't accept it from outside

Final clean up of tests


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/41515467
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/41515467
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/41515467

Branch: refs/heads/master
Commit: 41515467c4a0804dcb35d99070046ea0ac44a6e0
Parents: e68c72c
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Dec 12 12:34:14 2016 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Dec 12 12:34:14 2016 +0300

----------------------------------------------------------------------
 .../dbsync/reverse/dbload/DbLoaderIT.java       | 75 ++++++++++++--------
 .../reverse/dbload/RelationshipsLoaderIT.java   | 16 +++++
 .../modeler/dialog/db/DbLoaderHelper.java       |  2 +-
 3 files changed, 63 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/41515467/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/DbLoaderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/DbLoaderIT.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/DbLoaderIT.java
index bf0f89f..d2e87a5 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/DbLoaderIT.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/DbLoaderIT.java
@@ -21,12 +21,13 @@ package org.apache.cayenne.dbsync.reverse.dbload;
 
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dba.TypesMapping;
 import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
 import org.apache.cayenne.dbsync.naming.NoStemStemmer;
 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.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
@@ -34,16 +35,23 @@ import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Test;
 
 import java.sql.Connection;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 /**
  * All tests have been moved to corresponding loaders tests.
  */
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DbLoaderIT extends ServerCase {
 
-    public static final DbLoaderConfiguration CONFIG = new DbLoaderConfiguration();
+    private static final DbLoaderConfiguration CONFIG = new DbLoaderConfiguration();
+
     @Inject
     private ServerRuntime runtime;
 
@@ -58,19 +66,45 @@ public class DbLoaderIT extends ServerCase {
 
     private Connection connection;
 
-    private static String msgForTypeMismatch(DbAttribute origAttr, DbAttribute newAttr) {
-        return msgForTypeMismatch(origAttr.getType(), newAttr);
-    }
 
-    private static String msgForTypeMismatch(int origType, DbAttribute newAttr) {
-        String nt = TypesMapping.getSqlNameByType(newAttr.getType());
-        String ot = TypesMapping.getSqlNameByType(origType);
-        return attrMismatch(newAttr.getName(), "expected type: <" + ot + ">, but was <" + nt + ">");
+    /**
+     * Test that parts of loader are in place
+     */
+    @Test
+    public void testSimpleLoad() throws Exception {
+        DbLoader loader = createDbLoader(true, true);
+        DataMap loaded = loader.load();
+        assertNotNull(loaded);
+        assertEquals("__generated_by_dbloader__", loaded.getName());
+
+        // DbEntity
+        DbEntity artist = loaded.getDbEntity("ARTIST");
+        assertNotNull(artist);
+
+        // DbAttribute
+        DbAttribute id = artist.getAttribute("ARTIST_ID");
+        assertNotNull(id);
+        assertTrue(id.isMandatory());
+        assertTrue(id.isPrimaryKey());
+
+        DbAttribute name = artist.getAttribute("ARTIST_NAME");
+        assertNotNull(name);
+        assertTrue(name.isMandatory());
+
+        DbAttribute date = artist.getAttribute("DATE_OF_BIRTH");
+        assertNotNull(date);
+        assertFalse(date.isMandatory());
+
+        // DbRelationship
+        assertEquals(4, artist.getRelationships().size());
+
+        DbRelationship exhibits = artist.getRelationship("artistExhibits");
+        assertNotNull(exhibits);
+        assertEquals("ARTIST_EXHIBIT", exhibits.getTargetEntityName());
+        DbEntity target = exhibits.getTargetEntity();
+        assertNotNull(target);
     }
 
-    private static String attrMismatch(String attrName, String msg) {
-        return "[Error loading attribute '" + attrName + "': " + msg + "]";
-    }
 
     @Before
     public void before() throws Exception {
@@ -85,21 +119,4 @@ public class DbLoaderIT extends ServerCase {
     public void after() throws Exception {
         connection.close();
     }
-
-    private void assertUniqueConstraintsInRelationships(DataMap map) {
-        // unfortunately JDBC metadata doesn't provide info for UNIQUE
-        // constraints....
-        // cant reengineer them...
-        // upd. actually it's provided:
-        // http://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getIndexInfo%28java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean,%20boolean%29
-
-        // find rel to TO_ONEFK1
-        /*
-         * Iterator it = getDbEntity(map,
-         * "TO_ONEFK2").getRelationships().iterator(); DbRelationship rel =
-         * (DbRelationship) it.next(); assertEquals("TO_ONEFK1",
-         * rel.getTargetEntityName());
-         * assertFalse("UNIQUE constraint was ignored...", rel.isToMany());
-         */
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/41515467/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipsLoaderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipsLoaderIT.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipsLoaderIT.java
index a73833e..e983f09 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipsLoaderIT.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipsLoaderIT.java
@@ -79,4 +79,20 @@ public class RelationshipsLoaderIT extends BaseLoaderIT {
         assertTrue("Relationship to PAINTING_INFO must be to-one", oneToOne.isToDependentPK());
     }
 
+//    private void assertUniqueConstraintsInRelationships(DataMap map) {
+        // unfortunately JDBC metadata doesn't provide info for UNIQUE
+        // constraints....
+        // cant reengineer them...
+        // upd. actually it's provided:
+        // http://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getIndexInfo%28java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean,%20boolean%29
+
+        // find rel to TO_ONEFK1
+        /*
+         * Iterator it = getDbEntity(map,
+         * "TO_ONEFK2").getRelationships().iterator(); DbRelationship rel =
+         * (DbRelationship) it.next(); assertEquals("TO_ONEFK1",
+         * rel.getTargetEntityName());
+         * assertFalse("UNIQUE constraint was ignored...", rel.isToMany());
+         */
+//    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/41515467/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
index 0f49e49..462ceef 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
@@ -68,7 +68,7 @@ import java.util.Collections;
 import java.util.List;
 
 /**
- * Stateful helper class that encapsulates access to DbLoader2.
+ * Stateful helper class that encapsulates access to DbLoader.
  */
 public class DbLoaderHelper {