Updated Branches:
  refs/heads/trunk 56b5a3728 -> 06183f7ab

http://git-wip-us.apache.org/repos/asf/sqoop/blob/06183f7a/src/test/org/apache/sqoop/manager/netezza/NetezzaTestUtils.java
----------------------------------------------------------------------
diff --git a/src/test/org/apache/sqoop/manager/netezza/NetezzaTestUtils.java 
b/src/test/org/apache/sqoop/manager/netezza/NetezzaTestUtils.java
new file mode 100644
index 0000000..1abdb59
--- /dev/null
+++ b/src/test/org/apache/sqoop/manager/netezza/NetezzaTestUtils.java
@@ -0,0 +1,143 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sqoop.manager.netezza;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.cloudera.sqoop.TestExport.ColumnGenerator;
+
+/**
+ * Utilities for Netezza tests.
+ */
+public final class NetezzaTestUtils {
+
+  public static final Log LOG = LogFactory.getLog(
+    NetezzaTestUtils.class.getName());
+
+  public static final String NZ_HOST = System.getProperty(
+    "sqoop.test.netezza.host", "nz-host");
+  public static final String NZ_PORT = System.getProperty(
+    "sqoop.test.netezza.port", "5480");
+  public static final String NZ_JDBC_URL_PREFIX = "jdbc:netezza:";
+
+  public static final String NZ_DB_USER = System.getProperty(
+    "sqoop.test.netezza.username", "ADMIN");
+
+  public static final String NZ_DB_PASSWORD = System.getProperty(
+    "sqoop.test.netezza.password", "password");
+
+  public static final String NZ_DB_NAME = System.getProperty(
+    "sqoop.test.netezza.db.name", "SQOOP");
+  public static final String TABLE_NAME = System.getProperty(
+    "sqoop.test.netezza.table.name", "EMPNZ");
+
+  private NetezzaTestUtils() {
+  }
+
+  /** @return the current username. */
+  public static String getNZUser() {
+    // First, check the $NZ_USER environment variable.
+    String nzUser = System.getenv("NZ_USER");
+    if (nzUser == null) {
+      // Else return what is in the NZ Properties
+      nzUser = NZ_DB_USER;
+    }
+    return nzUser;
+  }
+
+  public static String getNZPassword() {
+    String nzPass = System.getenv("NZ_PASSWORD");
+    if (nzPass == null) {
+      nzPass = NZ_DB_PASSWORD;
+    }
+    return nzPass;
+  }
+
+  public static String getNZConnectString() {
+    String nzHost = System.getenv("NZ_HOST");
+    if (nzHost == null) {
+      nzHost = NZ_HOST;
+    }
+
+    String nzPort = System.getenv("NZ_PORT");
+    if (nzPort == null) {
+      nzPort = NZ_PORT;
+    }
+    String nzDB = System.getenv("NZ_DB_NAME");
+    if (nzDB == null) {
+      nzDB = NZ_DB_NAME;
+    }
+
+    StringBuilder url = new StringBuilder(NZ_JDBC_URL_PREFIX);
+    url.append("//").append(nzHost).append(':').append(nzPort);
+    url.append('/').append(nzDB);
+
+    LOG.info("NZ Connect string generated : " + url.toString());
+    return url.toString();
+  }
+
+  public static String getNZDropTableStatement(String tableName) {
+    return "DROP TABLE " + tableName;
+  }
+
+  public static void createTableNZ(Connection conn, String tableName,
+    ColumnGenerator... extraCols)
+    throws SQLException {
+    String sqlStatement = getNZDropTableStatement(tableName);
+    conn.rollback();
+    LOG.info("Executing drop statement : " + sqlStatement);
+    PreparedStatement statement = conn.prepareStatement(
+      sqlStatement, ResultSet.TYPE_FORWARD_ONLY,
+      ResultSet.CONCUR_READ_ONLY);
+    try {
+      statement.executeUpdate();
+      conn.commit();
+    } catch (SQLException sqle) {
+      conn.rollback();
+    } finally {
+      statement.close();
+    }
+
+    StringBuilder sb = new StringBuilder();
+    sb.append("CREATE TABLE ");
+    sb.append(tableName);
+    sb.append(" (id INT NOT NULL PRIMARY KEY, msg VARCHAR(64)");
+    int colNum = 0;
+    for (ColumnGenerator gen : extraCols) {
+      sb.append(", col").append(colNum++).append(' ').append(gen.getType());
+    }
+    sb.append(")");
+    sqlStatement = sb.toString();
+    LOG.info("Executing create statement : " + sqlStatement);
+    statement = conn.prepareStatement(sqlStatement,
+      ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+    try {
+      statement.executeUpdate();
+      conn.commit();
+    } finally {
+      statement.close();
+    }
+  }
+}

Reply via email to