Add test for simple ProcedureType (and its ArgumentType)
diff --git a/java/src/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java b/java/src/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java
index 6b48720..212a5d6 100644
--- a/java/src/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java
+++ b/java/src/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java
@@ -21,13 +21,13 @@
 
 public class TestHelper {
 
-    static final String DATABASE_DRIVER = "oracle.jdbc.OracleDriver";
-    static final String DATABASE_USERNAME_KEY = "db.user";
-    static final String DEFAULT_DATABASE_USERNAME = "scott";
-    static final String DATABASE_PASSWORD_KEY = "db.pwd";
-    static final String DEFAULT_DATABASE_PASSWORD = "tiger";
-    static final String DATABASE_URL_KEY = "db.url";
-    static final String DEFAULT_DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:ORCL";
+    public static final String DATABASE_DRIVER = "oracle.jdbc.OracleDriver";
+    public static final String DATABASE_USERNAME_KEY = "db.user";
+    public static final String DEFAULT_DATABASE_USERNAME = "scott";
+    public static final String DATABASE_PASSWORD_KEY = "db.pwd";
+    public static final String DEFAULT_DATABASE_PASSWORD = "tiger";
+    public static final String DATABASE_URL_KEY = "db.url";
+    public static final String DEFAULT_DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:ORCL";
     
     public static Connection buildConnection() throws ClassNotFoundException, SQLException {
         String username = System.getProperty(DATABASE_USERNAME_KEY, DEFAULT_DATABASE_USERNAME);
@@ -37,12 +37,12 @@
         return DriverManager.getConnection(url, username, password);
     }
     
-    public static void createTable(Connection conn, String createTableDDL) throws SQLException {
+    public static void createDbArtifact(Connection conn, String createTableDDL) throws SQLException {
         PreparedStatement pStmt = conn.prepareStatement(createTableDDL);
         pStmt.execute();
     }
     
-    public static void dropTable(Connection conn, String dropTableDDL) {
+    public static void dropDbArtifact(Connection conn, String dropTableDDL) {
         try {
             PreparedStatement pStmt = conn.prepareStatement(dropTableDDL);
             pStmt.execute();
diff --git a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java
index 65c9972..6e430f3 100644
--- a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java
+++ b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java
@@ -30,9 +30,10 @@
 
 @RunWith(Suite.class)
 @SuiteClasses({
-  TransformsTestSuite.class,
-  TableDDLTestSuite.class,
-  IOTTableDDLTestSuite.class
+    IOTTableDDLTestSuite.class,
+    ProcedureDDLTestSuite.class,
+    TableDDLTestSuite.class,
+    TransformsTestSuite.class
   }
 )
 public class DatabaseTypeBuilderTestSuite {
diff --git a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java
index 2f3d417..bb5a6a1 100644
--- a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java
+++ b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java
@@ -41,8 +41,8 @@
 //testing imports
 import org.eclipse.persistence.tools.oracleddl.test.AllTests;
 import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.buildConnection;
-import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.createTable;
-import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.dropTable;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.createDbArtifact;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.dropDbArtifact;
 
 
 public class IOTTableDDLTestSuite {
@@ -75,7 +75,7 @@
         conn = buildConnection();
         dtBuilder = new DatabaseTypeBuilder();
         //send DDL to database
-        createTable(conn, CREATE_IOTTABLE);
+        createDbArtifact(conn, CREATE_IOTTABLE);
         boolean worked = true;
         String msg = null;
         try {
@@ -157,6 +157,6 @@
 
     @AfterClass
     public static void tearDown() {
-        dropTable(conn, DROP_IOTTABLE);
+        dropDbArtifact(conn, DROP_IOTTABLE);
     }
 }
\ No newline at end of file
diff --git a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java
new file mode 100644
index 0000000..d46b072
--- /dev/null
+++ b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ * which accompanies this distribution.
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *     Mike Norman - June 10 2011, created DDL parser package
+ *     David McCann - July 2011, visit tests
+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.test.databasetypebuilder;
+
+//javase imports
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+//JUnit4 imports
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+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.ProcedureType;
+import org.eclipse.persistence.tools.oracleddl.metadata.VarCharType;
+import org.eclipse.persistence.tools.oracleddl.util.DatabaseTypeBuilder;
+
+//testing imports
+import org.eclipse.persistence.tools.oracleddl.test.AllTests;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_USERNAME_KEY;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DEFAULT_DATABASE_USERNAME;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.buildConnection;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.createDbArtifact;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.dropDbArtifact;
+
+public class ProcedureDDLTestSuite {
+
+    static final String SIMPLEPROC = "DTB_SIMPLEPROC";
+    static final String CREATE_SIMPLEPROC = 
+        "CREATE PROCEDURE " + SIMPLEPROC + "(X IN VARCHAR) (\n" +
+        "BEGIN\n" +
+            "null;\n" +  
+        "END";  
+    static final String DROP_SIMPLEPROC =
+        "DROP PROCEDURE " + SIMPLEPROC;
+    
+    //fixtures
+    static DatabaseTypeBuilder dtBuilder = DatabaseTypeBuilderTestSuite.dtBuilder;
+    static Connection conn = AllTests.conn;
+    static ProcedureType procedureType = null;
+    static List<String> expectedFieldNames = new ArrayList<String>();
+    static List<String> expectedPKFieldNames = new ArrayList<String>();
+    @BeforeClass
+    public static void setUp() throws SQLException, ClassNotFoundException {
+        conn = buildConnection();
+        dtBuilder = new DatabaseTypeBuilder();
+        //send DDL to database
+        createDbArtifact(conn, CREATE_SIMPLEPROC);
+        boolean worked = true;
+        String msg = null;
+        try {
+            String schema = System.getProperty(DATABASE_USERNAME_KEY, DEFAULT_DATABASE_USERNAME);
+            procedureType = dtBuilder.buildProcedures(conn, schema, SIMPLEPROC).get(0);
+        }
+        catch (Exception e) {
+            worked = false;
+            msg = e.getMessage();
+        }
+        if (!worked) {
+            fail(msg);
+        }
+    }
+    
+    @Test
+    public void testProcedureName() {
+        assertEquals("incorrect procedure name", SIMPLEPROC , procedureType.getProcedureName());
+    }
+    
+    @Test
+    public void testNumberOfArgs() {
+        List<ArgumentType> args = procedureType.getArguments();
+        assertTrue("incorrect number of arguments", args.size() ==  1);
+    }
+    
+    @Test
+    public void testArgumentNames() {
+        List<ArgumentType> args = procedureType.getArguments();
+        ArgumentType argFirst = args.get(0);
+        assertEquals("incorrect argument name", "X" , argFirst.getArgumentName());
+    }
+    
+    @Test
+    public void testArgumentTypes() {
+        List<ArgumentType> args = procedureType.getArguments();
+        ArgumentType argFirst = args.get(0);
+        assertEquals("incorrect type for args  " + argFirst.getArgumentName(),
+            new VarCharType().getTypeName(), argFirst.getDataType().getTypeName());
+    }
+
+    @AfterClass
+    public static void tearDown() {
+        dropDbArtifact(conn, DROP_SIMPLEPROC);
+    }
+
+}
\ No newline at end of file
diff --git a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java
index 802f9d2..9897085 100644
--- a/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java
+++ b/java/src/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java
@@ -39,9 +39,11 @@
 
 //testing imports
 import org.eclipse.persistence.tools.oracleddl.test.AllTests;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_USERNAME_KEY;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DEFAULT_DATABASE_USERNAME;
 import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.buildConnection;
-import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.createTable;
-import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.dropTable;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.createDbArtifact;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.dropDbArtifact;
 
 public class TableDDLTestSuite {
 
@@ -73,11 +75,12 @@
         conn = buildConnection();
         dtBuilder = new DatabaseTypeBuilder();
         //send DDL to database
-        createTable(conn, CREATE_SIMPLETABLE);
+        createDbArtifact(conn, CREATE_SIMPLETABLE);
         boolean worked = true;
         String msg = null;
         try {
-            tableType = dtBuilder.buildTables(conn, "SCOTT", SIMPLETABLE).get(0);
+            String schema = System.getProperty(DATABASE_USERNAME_KEY, DEFAULT_DATABASE_USERNAME);
+            tableType = dtBuilder.buildTables(conn, schema, SIMPLETABLE).get(0);
         }
         catch (Exception e) {
             worked = false;
@@ -155,7 +158,7 @@
 
     @AfterClass
     public static void tearDown() {
-        dropTable(conn, DROP_SIMPLETABLE);
+        dropDbArtifact(conn, DROP_SIMPLETABLE);
     }
 
 }
\ No newline at end of file