Revision: 3200
Author: [email protected]
Date: Mon Dec 14 09:10:07 2009
Log: Updated Architect's XML save/load to respect UUIDs, and updated some tests.
http://code.google.com/p/power-architect/source/detail?r=3200

Modified:
/branches/sqlobject-spobject-model/regress/ca/sqlpower/architect/swingui/TestSwingUIProject.java /branches/sqlobject-spobject-model/src/ca/sqlpower/architect/swingui/SwingUIProject.java

=======================================
--- /branches/sqlobject-spobject-model/regress/ca/sqlpower/architect/swingui/TestSwingUIProject.java Tue Dec 1 14:35:17 2009 +++ /branches/sqlobject-spobject-model/regress/ca/sqlpower/architect/swingui/TestSwingUIProject.java Mon Dec 14 09:10:07 2009
@@ -57,6 +57,7 @@
 import ca.sqlpower.architect.profile.TableProfileResult;
import ca.sqlpower.architect.swingui.ArchitectSwingSessionImpl.ColumnVisibility;
 import ca.sqlpower.architect.swingui.dbtree.DBTreeModel;
+import ca.sqlpower.object.SPObject;
 import ca.sqlpower.sql.JDBCDataSource;
 import ca.sqlpower.sql.JDBCDataSourceType;
 import ca.sqlpower.sql.PlDotIni;
@@ -86,6 +87,31 @@
     private ArchitectSwingSession session;
     private TestingArchitectSwingSessionContext context;

+    private class TestSQLDatabase extends SQLDatabase {
+
+        private List<StubSQLObject> stubs = new ArrayList<StubSQLObject>();
+
+        @Override
+        public List<Class<? extends SPObject>> getAllowedChildTypes() {
+ List<Class<? extends SPObject>> types = new ArrayList<Class<? extends SPObject>>();
+            types.add(StubSQLObject.class);
+            return types;
+        }
+
+        @Override
+        protected void addChildImpl(SPObject child, int index) {
+            if (child instanceof StubSQLObject) {
+                stubs.add(index, (StubSQLObject) child);
+            }
+        }
+
+        @Override
+        public List<? extends SQLObject> getChildren() {
+            return stubs;
+        }
+
+    }
+
        /*
* Test method for 'ca.sqlpower.architect.swingui.SwingUIProject.SwingUIProject(String)'
         */
@@ -190,6 +216,22 @@
         " </profiles>" +
         "</architect-project>";

+       public Set<String> getPropertiesToIgnore() {
+           Set<String> propertiesToIgnore = new HashSet<String>();
+           propertiesToIgnore.add("SPListeners");
+        propertiesToIgnore.add("children");
+        propertiesToIgnore.add("parent");
+        propertiesToIgnore.add("class");
+        propertiesToIgnore.add("childCount");
+        propertiesToIgnore.add("populated");
+        propertiesToIgnore.add("magicEnabled");
+        propertiesToIgnore.add("childrenInaccessibleReason");
+        propertiesToIgnore.add("session");
+        propertiesToIgnore.add("foregroundThread");
+        propertiesToIgnore.add("backgroundThread");
+        return propertiesToIgnore;
+       }
+
        /*
* Test method for 'ca.sqlpower.architect.swingui.SwingUIProject.load(InputStream)'
         */
@@ -393,23 +435,16 @@
                db.setPopulated(true);
                ((SQLObject) dbTreeModel.getRoot()).addChild(db);

-               Set<String> propertiesToIgnore = new HashSet<String>();
-               propertiesToIgnore.add("SQLObjectListeners");
-               propertiesToIgnore.add("children");
+               Set<String> propertiesToIgnore = getPropertiesToIgnore();
                propertiesToIgnore.add("tables");
-               propertiesToIgnore.add("parent");
                propertiesToIgnore.add("parentDatabase");
-               propertiesToIgnore.add("class");
-               propertiesToIgnore.add("childCount");
                propertiesToIgnore.add("connection");
-               propertiesToIgnore.add("populated");
                propertiesToIgnore.add("secondaryChangeMode");
                propertiesToIgnore.add("dataSource");  // we set this already!
                propertiesToIgnore.add("playPenDatabase");  // only set by 
playpen code
                propertiesToIgnore.add("progressMonitor");
                propertiesToIgnore.add("zoomInAction");
                propertiesToIgnore.add("zoomOutAction");
-        propertiesToIgnore.add("magicEnabled");
         propertiesToIgnore.add("tableContainer");

                Map<String,Object> oldDescription =
@@ -439,8 +474,7 @@
                Map<String, Object> newDescription =
ca.sqlpower.testutil.TestUtils.getAllInterestingProperties(db, propertiesToIgnore);

-               assertEquals("loaded-in version of database doesn't match the 
original!",
-                               oldDescription.toString(), 
newDescription.toString());
+               assertMapsEqual(oldDescription, newDescription);
        }


@@ -471,17 +505,10 @@
                SQLCatalog target = new SQLCatalog(db, "my test catalog");
                db.addChild(target);

-               Set<String> propertiesToIgnore = new HashSet<String>();
-               propertiesToIgnore.add("SQLObjectListeners");
-               propertiesToIgnore.add("children");
-               propertiesToIgnore.add("parent");
+               Set<String> propertiesToIgnore = getPropertiesToIgnore();
                propertiesToIgnore.add("parentDatabase");
-               propertiesToIgnore.add("class");
-
-               propertiesToIgnore.add("childCount");
+
                propertiesToIgnore.add("secondaryChangeMode");
-               propertiesToIgnore.add("populated");
-        propertiesToIgnore.add("magicEnabled");
         propertiesToIgnore.add("tableContainer");

                Map<String,Object> oldDescription =
@@ -526,17 +553,9 @@
                SQLSchema target = new SQLSchema(db, "my test schema", true);
                db.addChild(target);

-               Set<String> propertiesToIgnore = new HashSet<String>();
-               propertiesToIgnore.add("SQLObjectListeners");
-               propertiesToIgnore.add("children");
-               propertiesToIgnore.add("parent");
+               Set<String> propertiesToIgnore = getPropertiesToIgnore();
                propertiesToIgnore.add("parentDatabase");
-               propertiesToIgnore.add("class");
-               propertiesToIgnore.add("childCount");
-               propertiesToIgnore.add("populated");
                propertiesToIgnore.add("secondaryChangeMode");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("childrenInaccessibleReason");

                Map<String,Object> oldDescription =
                        TestUtils.setAllInterestingProperties(target, 
propertiesToIgnore);
@@ -580,18 +599,10 @@
                SQLTable target = new SQLTable(db, true);
                db.addChild(target);

-               Set<String> propertiesToIgnore = new HashSet<String>();
-               propertiesToIgnore.add("SQLObjectListeners");
-               propertiesToIgnore.add("children");
-               propertiesToIgnore.add("parent");
+               Set<String> propertiesToIgnore = getPropertiesToIgnore();
                propertiesToIgnore.add("parentDatabase");
-               propertiesToIgnore.add("class");
-               propertiesToIgnore.add("childCount");
-               propertiesToIgnore.add("populated");
                propertiesToIgnore.add("columnsFolder");
                propertiesToIgnore.add("secondaryChangeMode");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("childrenInaccessibleReason");

                Map<String,Object> oldDescription =
                        TestUtils.setAllInterestingProperties(target, 
propertiesToIgnore);
@@ -632,18 +643,10 @@
                ppdb.addChild(table);
                table.addColumn(target);

-               Set<String> propertiesToIgnore = new HashSet<String>();
-               propertiesToIgnore.add("SQLObjectListeners");
-               propertiesToIgnore.add("children");
-               propertiesToIgnore.add("parent");
+               Set<String> propertiesToIgnore = getPropertiesToIgnore();
                propertiesToIgnore.add("parentTable");
-               propertiesToIgnore.add("class");
-               propertiesToIgnore.add("childCount");
-               propertiesToIgnore.add("populated");
                propertiesToIgnore.add("undoEventListeners");
                propertiesToIgnore.add("secondaryChangeMode");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("childrenInaccessibleReason");

                Map<String,Object> oldDescription =
                        TestUtils.setAllInterestingProperties(target, 
propertiesToIgnore);
@@ -711,13 +714,8 @@
         table.addChild(target);
         col.setPrimaryKeySeq(0);

-        Set<String> propertiesToIgnore = new HashSet<String>();
-        propertiesToIgnore.add("SQLObjectListeners");
+        Set<String> propertiesToIgnore = getPropertiesToIgnore();
         propertiesToIgnore.add("undoEventListeners");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("children");
-        propertiesToIgnore.add("parent");
-        propertiesToIgnore.add("class");

         Map<String,Object> oldDescription =
TestUtils.setAllInterestingProperties(target, propertiesToIgnore);
@@ -776,14 +774,9 @@
         table.addChild(index);
         index.addChild(indexCol);

-        Set<String> propertiesToIgnore = new HashSet<String>();
-        propertiesToIgnore.add("SQLObjectListeners");
+        Set<String> propertiesToIgnore = getPropertiesToIgnore();
         propertiesToIgnore.add("undoEventListeners");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("children");
-        propertiesToIgnore.add("parent");
         propertiesToIgnore.add("primaryKeyIndex");
-        propertiesToIgnore.add("class");

         Map<String,Object> oldDescription =
TestUtils.setAllInterestingProperties(index, propertiesToIgnore);
@@ -834,15 +827,9 @@
         assertEquals(1, table.getIndices().size());
         assertSame(index, table.getPrimaryKeyIndex());

-        Set<String> propertiesToIgnore = new HashSet<String>();
-        propertiesToIgnore.add("SQLObjectListeners");
+        Set<String> propertiesToIgnore = getPropertiesToIgnore();
         propertiesToIgnore.add("undoEventListeners");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("children");
-        propertiesToIgnore.add("parent");
         propertiesToIgnore.add("primaryKeyIndex");
-        propertiesToIgnore.add("class");
-        propertiesToIgnore.add("populated");

         assertSame(index, table.getPrimaryKeyIndex());

@@ -884,13 +871,8 @@
         ppdb.addChild(table);
         table.addChild(index);
         col.setPrimaryKeySeq(new Integer(0));
-        Set<String> propertiesToIgnore = new HashSet<String>();
-        propertiesToIgnore.add("SQLObjectListeners");
+        Set<String> propertiesToIgnore = getPropertiesToIgnore();
         propertiesToIgnore.add("undoEventListeners");
-        propertiesToIgnore.add("magicEnabled");
-        propertiesToIgnore.add("children");
-        propertiesToIgnore.add("parent");
-        propertiesToIgnore.add("class");

         Map<String,Object> oldDescription =
TestUtils.setAllInterestingProperties(index, propertiesToIgnore);
@@ -1130,7 +1112,7 @@
         ByteArrayOutputStream out = new ByteArrayOutputStream();
SQLObject dbtreeRoot = (SQLObject) session.getSourceDatabases().getModel().getRoot();

-        SQLDatabase db = new SQLDatabase();
+        SQLDatabase db = new TestSQLDatabase();
         dbtreeRoot.addChild(db);

         StubSQLObject sso = new StubSQLObject();
@@ -1197,9 +1179,8 @@
             SQLObject child = (SQLObject) it.next();
             if (o instanceof SQLObjectRoot) {
                 // skip, because database parent pointers are null
- } else if (child instanceof SQLRelationship && o.getName().startsWith("Imported Keys")) { - // skip, because the exported keys folder should be the parent - // Note, if this is failing, maybe you renamed the "Imported Keys" folder! :) + } else if (child instanceof SQLRelationship && ((SQLRelationship) child).getFkTable().equals(o)) {
+                // skip, because the primary key table should be the parent
             } else {
                 assertSame(path, o, child.getParent());
             }
@@ -1260,7 +1241,7 @@
         ByteArrayOutputStream out = new ByteArrayOutputStream();
SQLObject dbtreeRoot = (SQLObject) session.getSourceDatabases().getModel().getRoot();

-        SQLDatabase db = new SQLDatabase();
+        SQLDatabase db = new TestSQLDatabase();
         dbtreeRoot.addChild(db);

         StubSQLObject sso = new StubSQLObject();
=======================================
--- /branches/sqlobject-spobject-model/src/ca/sqlpower/architect/swingui/SwingUIProject.java Tue Dec 1 14:52:06 2009 +++ /branches/sqlobject-spobject-model/src/ca/sqlpower/architect/swingui/SwingUIProject.java Mon Dec 14 09:10:07 2009
@@ -1215,6 +1215,7 @@
         // properties of all SQLObject types
         propNames.put("physicalName", o.getPhysicalName()); //$NON-NLS-1$
propNames.put("name", o.getName()); // note: there was no name attrib for SQLDatabase, SQLRelationship.ColumnMapping, and SQLExceptionNode //$NON-NLS-1$
+        propNames.put("UUID", o.getUUID());

         if (o.getChildrenInaccessibleReason() != null) {
propNames.put("sql-exception", o.getChildrenInaccessibleReason().getMessage()); //$NON-NLS-1$

Reply via email to