BATCH-810: added mainframe incrementer as "db2zos", also added to metadata lookup
This commit is contained in:
@@ -28,6 +28,7 @@ import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrem
|
||||
import org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.SqlServerMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.SybaseMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.DB2MainframeSequenceMaxValueIncrementer;
|
||||
|
||||
/**
|
||||
* @author Lucas Ward
|
||||
@@ -49,6 +50,7 @@ public class DefaultDataFieldMaxValueIncrementerFactoryTests extends TestCase {
|
||||
|
||||
public void testSupportedDatabaseType(){
|
||||
assertTrue(factory.isSupportedIncrementerType("db2"));
|
||||
assertTrue(factory.isSupportedIncrementerType("db2zos"));
|
||||
assertTrue(factory.isSupportedIncrementerType("mysql"));
|
||||
assertTrue(factory.isSupportedIncrementerType("derby"));
|
||||
assertTrue(factory.isSupportedIncrementerType("oracle"));
|
||||
@@ -86,6 +88,10 @@ public class DefaultDataFieldMaxValueIncrementerFactoryTests extends TestCase {
|
||||
assertTrue(factory.getIncrementer("db2", "NAME") instanceof DB2SequenceMaxValueIncrementer);
|
||||
}
|
||||
|
||||
public void testDb2zos(){
|
||||
assertTrue(factory.getIncrementer("db2zos", "NAME") instanceof DB2MainframeSequenceMaxValueIncrementer);
|
||||
}
|
||||
|
||||
public void testMysql(){
|
||||
assertTrue(factory.getIncrementer("mysql", "NAME") instanceof MySQLMaxValueIncrementer);
|
||||
}
|
||||
|
||||
@@ -67,7 +67,30 @@ public class SimpleDelegatingPagingQueryProviderTests {
|
||||
AbstractSqlPagingQueryProvider queryProviderToBeUsed = new Db2PagingQueryProvider();
|
||||
initializeQueryProvider(queryProviderToBeUsed);
|
||||
|
||||
EasyMock.expect(dmd.getDatabaseProductName()).andReturn("DB2/Linux");
|
||||
EasyMock.replay(dmd);
|
||||
EasyMock.replay(con);
|
||||
EasyMock.replay(ds);
|
||||
|
||||
pagingQueryProvider.init(ds);
|
||||
String sql = queryProviderToBeUsed.generateFirstPageQuery(pageSize);
|
||||
String s = pagingQueryProvider.generateFirstPageQuery(pageSize);
|
||||
Assert.assertEquals("", sql, s);
|
||||
|
||||
EasyMock.verify(ds);
|
||||
EasyMock.verify(con);
|
||||
EasyMock.verify(dmd);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDb2ZOS() throws Exception {
|
||||
AbstractSqlPagingQueryProvider queryProviderToBeUsed = new Db2PagingQueryProvider();
|
||||
initializeQueryProvider(queryProviderToBeUsed);
|
||||
|
||||
EasyMock.expect(dmd.getDatabaseProductName()).andReturn("DB2");
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
EasyMock.expect(dmd.getDatabaseProductVersion()).andReturn("DSN08015");
|
||||
EasyMock.replay(dmd);
|
||||
EasyMock.replay(con);
|
||||
EasyMock.replay(ds);
|
||||
|
||||
@@ -22,6 +22,7 @@ public class DatabaseTypeTests {
|
||||
public void testFromProductName(){
|
||||
assertEquals(DERBY, fromProductName("Apache Derby"));
|
||||
assertEquals(DB2, fromProductName("DB2"));
|
||||
assertEquals(DB2ZOS, fromProductName("DB2ZOS"));
|
||||
assertEquals(HSQL, fromProductName("HSQL Database Engine"));
|
||||
assertEquals(SQLSERVER, fromProductName("Microsoft SQL Server"));
|
||||
assertEquals(MYSQL, fromProductName("MySQL"));
|
||||
@@ -37,8 +38,107 @@ public class DatabaseTypeTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaData() throws Exception{
|
||||
public void testFromMetaDataForDerby() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("Apache Derby");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(DERBY, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForDB2() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("DB2/Linux");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(DB2, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForDB2ZOS() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("DB2");
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductVersion()).andReturn("DSN08015");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(DB2ZOS, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForHsql() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("HSQL Database Engine");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(HSQL, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForSqlServer() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("Microsoft SQL Server");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(SQLSERVER, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForMySql() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("MySQL");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(MYSQL, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForOracle() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
@@ -46,9 +146,41 @@ public class DatabaseTypeTests {
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("Oracle");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
|
||||
assertEquals(ORACLE, DatabaseType.fromMetaData(ds));
|
||||
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForPostgres() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("PostgreSQL");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(POSTGRES, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFromMetaDataForSybase() throws Exception{
|
||||
|
||||
DatabaseMetaData dmd = createMock(DatabaseMetaData.class);
|
||||
DataSource ds = createMock(DataSource.class);
|
||||
Connection con = createMock(Connection.class);
|
||||
expect(ds.getConnection()).andReturn(con);
|
||||
expect(con.getMetaData()).andReturn(dmd);
|
||||
expect(dmd.getDatabaseProductName()).andReturn("Adaptive Server Enterprise");
|
||||
replay(dmd,ds,con);
|
||||
|
||||
assertEquals(SYBASE, DatabaseType.fromMetaData(ds));
|
||||
|
||||
verify(dmd,ds,con);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user