diff --git a/.bzrignore b/.bzrignore index 478b417..ec1539d 100644 --- a/.bzrignore +++ b/.bzrignore @@ -11,3 +11,6 @@ **/*.log JayDeBeApi.egg-info ./libs/**/*.class +./mockdriver/target +./mockdriver/.classpath +./mockdriver/.project diff --git a/mockdriver/pom.xml b/mockdriver/pom.xml new file mode 100644 index 0000000..8c1ade3 --- /dev/null +++ b/mockdriver/pom.xml @@ -0,0 +1,31 @@ + + 4.0.0 + + org.jaydebeapi + mockdriver + 1.0-SNAPSHOT + jar + + mockdriver + http://maven.apache.org + + + UTF-8 + + + + + org.mockito + mockito-all + 1.9.5 + + + + junit + junit + 4.11 + test + + + diff --git a/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockDriver.java b/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockDriver.java new file mode 100644 index 0000000..a17b903 --- /dev/null +++ b/mockdriver/src/main/java/org/jaydebeapi/mockdriver/MockDriver.java @@ -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; + } + +} diff --git a/mockdriver/src/main/resources/META-INF/services/java.sql.Driver b/mockdriver/src/main/resources/META-INF/services/java.sql.Driver new file mode 100644 index 0000000..b2807b0 --- /dev/null +++ b/mockdriver/src/main/resources/META-INF/services/java.sql.Driver @@ -0,0 +1 @@ +org.jaydebeapi.mockdriver.MockDriver \ No newline at end of file diff --git a/mockdriver/src/test/java/org/jaydebeapi/mockdriver/MockDriverTest.java b/mockdriver/src/test/java/org/jaydebeapi/mockdriver/MockDriverTest.java new file mode 100644 index 0000000..b9d318b --- /dev/null +++ b/mockdriver/src/test/java/org/jaydebeapi/mockdriver/MockDriverTest.java @@ -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"); + } + +}