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