More top-level unresolved types tests
diff --git a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TypeResolutionTestSuite.java b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TypeResolutionTestSuite.java
index 8732dfe..3b8daa0 100644
--- a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TypeResolutionTestSuite.java
+++ b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TypeResolutionTestSuite.java
@@ -23,12 +23,15 @@
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
//DDL imports
import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentType;
import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseType;
import org.eclipse.persistence.tools.oracleddl.metadata.FunctionType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ObjectTableType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ObjectType;
import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLPackageType;
import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLRecordType;
import org.eclipse.persistence.tools.oracleddl.metadata.ProcedureType;
@@ -89,8 +92,9 @@
"\n\tADDR_REGION\tREGION," +
"\n\tPOSTCODE\tINTEGER," +
")";
+ static final String EMP_OBJECT_TYPE = "EMP_OBJECT";
static final String CREATE_EMP_OBJECT =
- "CREATE OR REPLACE TYPE EMP_OBJECT AS OBJECT (" +
+ "CREATE OR REPLACE TYPE " + EMP_OBJECT_TYPE + " AS OBJECT (" +
"\n\tEMPLOYEE_ID\tNUMBER(8)," +
"\n\tADDRESS\tEMP_ADDRESS," +
"\n\tEMPLOYEE_NAME\tVARCHAR2(80)," +
@@ -290,4 +294,23 @@
ArgumentType returnRegion = echoRegionProc.getReturnArgument();
assertSame(aRegion.getDataType(), returnRegion.getDataType());
}
+
+ @Test
+ public void testObjectTypeRefersToGlobalTypes() {
+ boolean worked = true;
+ String msg = null;
+ ObjectType objectType = null;
+ try {
+ objectType = (ObjectType)dtBuilder.buildTypes(conn, null, EMP_OBJECT_TYPE).get(0);
+ }
+ catch (Exception e) {
+ worked = false;
+ msg = e.getMessage();
+ }
+ assertTrue(msg,worked);
+ UnresolvedTypesVisitor visitor = new UnresolvedTypesVisitor();
+ visitor.visit(objectType);
+ assertEquals(EMP_OBJECT_TYPE + " should not have any unresolved types",
+ 0, visitor.getUnresolvedTypes().size());
+ }
}
\ No newline at end of file