Implemented ground for a mockable jdbc driver for unit test purposes.

mvn eclipse:eclipse -DdownloadSources
mvn test
mvn package
master
baztian 2013-11-01 19:02:20 +01:00
parent 72b9c30574
commit c8dc6b4175
5 changed files with 119 additions and 0 deletions

View File

@ -11,3 +11,6 @@
**/*.log
JayDeBeApi.egg-info
./libs/**/*.class
./mockdriver/target
./mockdriver/.classpath
./mockdriver/.project

31
mockdriver/pom.xml 100644
View File

@ -0,0 +1,31 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jaydebeapi</groupId>
<artifactId>mockdriver</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mockdriver</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<!-- non-test scope on purpose -->
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,57 @@
package org.jaydebeapi.mockdriver;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.DriverPropertyInfo;
import java.sql.SQLException;
import java.util.Properties;
import org.mockito.Mockito;
public class MockDriver implements Driver {
static {
MockDriver driver = new MockDriver();
try {
DriverManager.registerDriver(driver);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
public Connection connect(String url, Properties info) throws SQLException {
if (!url.startsWith("jdbc:jaydebeapi://")) {
return null;
}
return Mockito.mock(Connection.class);
}
@Override
public boolean acceptsURL(String url) throws SQLException {
return true;
}
@Override
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info)
throws SQLException {
return null;
}
@Override
public int getMajorVersion() {
return 0;
}
@Override
public int getMinorVersion() {
return 0;
}
@Override
public boolean jdbcCompliant() {
return false;
}
}

View File

@ -0,0 +1 @@
org.jaydebeapi.mockdriver.MockDriver

View File

@ -0,0 +1,27 @@
package org.jaydebeapi.mockdriver;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.junit.Test;
public class MockDriverTest {
@Test
public void test() throws Exception {
Connection connection = DriverManager
.getConnection("jdbc:jaydebeapi://dummyurl");
assertThat(connection, notNullValue());
}
@Test(expected = SQLException.class)
public void testWrongUrl() throws Exception {
DriverManager.getConnection("jdbc:unkown://dummyurl", "user",
"password");
}
}