summaryrefslogtreecommitdiffstats
path: root/luni/src/test/java/tests/sql/SQLTest.java
diff options
context:
space:
mode:
authorPeter Hallam <peterhal@google.com>2010-04-26 12:53:37 -0700
committerPeter Hallam <peterhal@google.com>2010-04-27 16:26:27 -0700
commitcec4dd4b1d33f78997603d0f89c0d0e56e64dbcd (patch)
treee71d43da21749bfeb4524b0adec05c91d1f89a5f /luni/src/test/java/tests/sql/SQLTest.java
parentf205f06be1ce65f132be1b7c850675086f26c0f7 (diff)
downloadlibcore-cec4dd4b1d33f78997603d0f89c0d0e56e64dbcd.zip
libcore-cec4dd4b1d33f78997603d0f89c0d0e56e64dbcd.tar.gz
libcore-cec4dd4b1d33f78997603d0f89c0d0e56e64dbcd.tar.bz2
merge more modules into luni
Diffstat (limited to 'luni/src/test/java/tests/sql/SQLTest.java')
-rwxr-xr-xluni/src/test/java/tests/sql/SQLTest.java136
1 files changed, 136 insertions, 0 deletions
diff --git a/luni/src/test/java/tests/sql/SQLTest.java b/luni/src/test/java/tests/sql/SQLTest.java
new file mode 100755
index 0000000..b0719c2
--- /dev/null
+++ b/luni/src/test/java/tests/sql/SQLTest.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed 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 tests.sql;
+
+import dalvik.annotation.TestTargetClass;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+@TestTargetClass(Statement.class)
+public class SQLTest extends TestCase {
+ static Connection conn;
+
+ @Override
+ public void setUp() throws Exception {
+ getSQLiteConnection();
+ createZoo();
+ }
+
+ protected File dbFile;
+
+ protected void getSQLiteConnection() throws Exception {
+ String tmp = System.getProperty("java.io.tmpdir");
+ assertEquals(tmp, System.getProperty("java.io.tmpdir"));
+ File tmpDir = new File(tmp);
+ if (tmpDir.isDirectory()) {
+ dbFile = File.createTempFile("sqliteTest", ".db", tmpDir);
+ dbFile.deleteOnExit();
+ } else {
+ System.err.println("java.io.tmpdir does not exist");
+ }
+
+ Class.forName("SQLite.JDBCDriver").newInstance();
+ conn = DriverManager.getConnection("jdbc:sqlite:/" + dbFile.getPath());
+ assertNotNull("Connection created ", conn);
+ }
+
+ @Override
+ public void tearDown() {
+ Statement st = null;
+ try {
+ if (! conn.isClosed()) {
+ st = conn.createStatement();
+ st.execute("drop table if exists zoo");
+ }
+ } catch (SQLException e) {
+ fail("Couldn't drop table: " + e.getMessage());
+ } finally {
+ try {
+ if (st != null) {
+ st.close();
+ conn.close();
+ }
+ } catch(SQLException ee) {
+ //ignore
+ }
+ }
+ }
+
+ public void createZoo() {
+
+ String[] queries = {
+ "create table zoo(id smallint, name varchar(10), family varchar(10))",
+ "insert into zoo values (1, 'Kesha', 'parrot')",
+ "insert into zoo values (2, 'Yasha', 'sparrow')" };
+
+ Statement st = null;
+ try {
+ st = conn.createStatement();
+ for (int i = 0; i < queries.length; i++) {
+ st.execute(queries[i]);
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ fail("Unexpected exception: " + e.getMessage());
+ } finally {
+ try {
+ if (st != null) {
+ st.close();
+ }
+ } catch (SQLException ee) {}
+ }
+ }
+
+ public void createProcedure() {
+ String proc = "CREATE PROCEDURE welcomeAnimal (IN parameter1 integer, IN parameter2 char(20), IN parameter3 char(20)) "
+ + " BEGIN "
+ + " INSERT INTO zoo(id, name, family) VALUES (parameter1, parameter2, parameter3); "
+ + "SELECT * FROM zoo;" + " END;";
+ Statement st = null;
+ try {
+ st = conn.createStatement();
+ st.execute("DROP PROCEDURE IF EXISTS welcomeAnimal");
+ st.execute(proc);
+ } catch (SQLException e) {
+ fail("Unexpected exception: " + e.getMessage());
+ } finally {
+ try {
+ st.close();
+ } catch (SQLException ee) {}
+ }
+ }
+
+ public int getCount(ResultSet rs) {
+ int count = 0;
+ try {
+ while (rs.next()) {
+ count++;
+ }
+ } catch (SQLException e) {
+ fail("SQLException is thrown");
+ }
+ return count;
+ }
+}