blob: aac8f1627c361c8a3af0db36171f1829756e01a7 [file] [log] [blame]
/*
* Copyright (C) 2008 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.SQLite;
import SQLite.Exception;
import SQLite.JDBCDriver;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.DriverPropertyInfo;
import java.sql.SQLException;
@TestTargetClass(JDBCDriver.class)
public class JDBCDriverTest extends JDBCDriverFunctionalTest {
/**
* The SQLite db file.
*/
private JDBCDriver jDriver;
private Driver returnedDriver;
public void setUp() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException, Exception {
try {
super.setUp();
returnedDriver = DriverManager.getDriver(getConnectionURL());
if (returnedDriver instanceof JDBCDriver) {
this.jDriver = (JDBCDriver) returnedDriver;
}
} catch (SQLException e) {
System.out.println("Cannot get driver");
e.printStackTrace();
} catch (Exception e) {
System.out.println("DB Setup failed");
e.printStackTrace();
}
}
/**
* @tests JDBCDriver#JDBCDriver()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "constructor test",
method = "JDBCDriver",
args = {}
)
public void testJDBCDriver() {
assertTrue(returnedDriver instanceof JDBCDriver);
}
/**
* @tests JDBCDriver#acceptsURL(String)
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "constructor test",
method = "acceptsURL",
args = {java.lang.String.class}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "constructor test",
// we have to list the Driver target explicitly, since SQLite
// is not part of the target packages
clazz = Driver.class,
method = "acceptsURL",
args = {java.lang.String.class}
)
})
public void testAcceptsURL() {
try {
if (this.jDriver != null) {
assertTrue(jDriver.acceptsURL(getConnectionURL()));
} else {
fail("no Driver available");
}
} catch (SQLException e) {
fail("Driver does not accept URL");
e.printStackTrace();
}
}
/**
* @tests JDBCDriver#connect(String, java.util.Properties)
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
method = "connect",
args = {java.lang.String.class, java.util.Properties.class}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
// we have to list the Driver target explicitly, since SQLite
// is not part of the target packages
clazz = Driver.class,
notes = "method test",
method = "connect",
args = {java.lang.String.class, java.util.Properties.class}
)
})
public void testConnect() {
try {
if (this.jDriver != null) {
Connection c = jDriver.connect(getConnectionURL(), null);
assertFalse(c.isClosed());
DriverManager.getConnection(getConnectionURL());
} else {
fail("no Driver available");
}
} catch (SQLException e) {
fail("Driver does not connect");
e.printStackTrace();
}
}
/**
* @tests JDBCDriver#getMajorVersion()
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
method = "getMajorVersion",
args = {}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
// we have to list the Driver target explicitly, since SQLite
// is not part of the target packages
clazz = Driver.class,
notes = "method test",
method = "getMajorVersion",
args = {}
)
})
public void testGetMajorVersion() {
if (this.jDriver != null) {
assertTrue(jDriver.getMajorVersion() > 0);
} else {
fail("no Driver available");
}
}
/**
* @tests JDBCDriver#getMinorVersion()
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
method = "getMinorVersion",
args = {}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
// we have to list the Driver target explicitly, since SQLite
// is not part of the target packages
clazz = Driver.class,
method = "getMinorVersion",
args = {}
)
})
public void testGetMinorVersion() {
if (this.jDriver != null) {
assertTrue(jDriver.getMinorVersion() > 0);
} else {
fail("no version information available");
}
}
/**
* @tests JDBCDriver#getPropertyInfo(String, java.util.Properties)
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
method = "getPropertyInfo",
args = {java.lang.String.class, java.util.Properties.class}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
// we have to list the Driver target explicitly, since SQLite
// is not part of the target packages
clazz = Driver.class,
method = "getPropertyInfo",
args = {java.lang.String.class, java.util.Properties.class}
)
})
public void testGetPropertyInfo() {
DriverPropertyInfo[] info = null;
try {
if (this.jDriver != null) {
info = jDriver.getPropertyInfo(getConnectionURL(), null);
assertNotNull(info);
assertTrue(info.length > 0);
} else {
fail("no Driver available");
}
} catch (SQLException e) {
fail("Driver property details not available");
e.printStackTrace();
}
assertNotNull(info);
}
/**
* @tests JDBCDriver#jdbcCompliant()
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "method test",
method = "jdbcCompliant",
args = {}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
// we have to list the Driver target explicitly, since SQLite
// is not part of the target packages
clazz = Driver.class,
notes = "method test",
method = "jdbcCompliant",
args = {}
)
})
public void testJdbcCompliant() {
if (this.jDriver != null) {
assertFalse(jDriver.jdbcCompliant());
} else {
fail("no version information available");
}
}
/**
* Tears down an unit test by calling the tearDown method of the super class
* and deleting the SQLite test db file.
*/
@Override
protected void tearDown() throws SQLException {
super.tearDown();
}
}