[Squirrel-sql-commits] sql12/test/src/net/sourceforge/squirrel_sql/fw/sql UDTInfoTest.java, NONE,
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2008-10-22 00:54:41
|
Update of /cvsroot/squirrel-sql/sql12/test/src/net/sourceforge/squirrel_sql/fw/sql In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12681/test/src/net/sourceforge/squirrel_sql/fw/sql Modified Files: SQLDatabaseMetaDataTest.java Added Files: UDTInfoTest.java Log Message: Added new test cases to cover UDTInfo. --- NEW FILE: UDTInfoTest.java --- /* * Copyright (C) 2008 Rob Manning * man...@us... * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package net.sourceforge.squirrel_sql.fw.sql; import static org.easymock.EasyMock.expect; import java.sql.Types; import net.sourceforge.squirrel_sql.BaseSQuirreLJUnit4TestCase; import org.junit.After; import org.junit.Before; import org.junit.Test; import utils.EasyMockHelper; import com.gargoylesoftware.base.testing.EqualsTester; public class UDTInfoTest extends BaseSQuirreLJUnit4TestCase { private static final String TEST_SCHEMA = "aSchema"; private static final String TEST_CATALOG = "aCatalog"; EasyMockHelper mockHelper = new EasyMockHelper(); SQLDatabaseMetaData mockMetaData = mockHelper.createMock(SQLDatabaseMetaData.class); @Before public void setUp() throws Exception { expect(mockMetaData.supportsSchemasInDataManipulation()).andStubReturn(true); expect(mockMetaData.getDatabaseProductName()).andStubReturn("oracle"); expect(mockMetaData.getDatabaseProductVersion()).andStubReturn("10g"); expect(mockMetaData.supportsCatalogsInDataManipulation()).andStubReturn(true); expect(mockMetaData.supportsSchemasInTableDefinitions()).andStubReturn(true); expect(mockMetaData.getCatalogSeparator()).andStubReturn("."); expect(mockMetaData.getIdentifierQuoteString()).andStubReturn("'"); } @After public void tearDown() throws Exception { } @Test public void testEqualsAndHashcode() { mockHelper.replayAll(); // original object UDTInfo a = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType", "java.lang.String", "" + Types.VARCHAR, "UDT-A", mockMetaData); // another object that has the same values as the original UDTInfo a2 = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType", "java.lang.String", "" + Types.VARCHAR, "UDT-A", mockMetaData); // another object with different values UDTInfo c = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType2", "java.lang.Object", "" + Types.VARBINARY, "UDT-C", mockMetaData); // a subclass of Foo with the same values as the original UDTInfo d = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType2", "java.lang.Object", "" + Types.VARBINARY, "UDT-C", mockMetaData) { private static final long serialVersionUID = 1L; }; new EqualsTester(a, a2, c, d); UDTInfo a3 = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType", null, "" + Types.VARCHAR, "UDT-A", mockMetaData); new EqualsTester(a, a2, a3, d); UDTInfo a4 = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType", "java.lang.String", null, "UDT-A", mockMetaData); new EqualsTester(a, a2, a4, d); UDTInfo a5 = new UDTInfo(TEST_CATALOG, TEST_SCHEMA, "userDefinedType", "java.lang.String", "" + Types.VARCHAR, "No Remarks", mockMetaData); new EqualsTester(a, a2, a5, d); mockHelper.verifyAll(); } } Index: SQLDatabaseMetaDataTest.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/test/src/net/sourceforge/squirrel_sql/fw/sql/SQLDatabaseMetaDataTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** SQLDatabaseMetaDataTest.java 10 Oct 2008 21:39:30 -0000 1.8 --- SQLDatabaseMetaDataTest.java 22 Oct 2008 00:54:33 -0000 1.9 *************** *** 19,22 **** --- 19,23 ---- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + import static java.sql.Types.VARCHAR; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.expectLastCall; *************** *** 78,84 **** /* The first time that schemas are asked for, return just one */ ! ResultSet schemaResultSet1 = buildVarcharResultSet("schemaResultSet1", new String[] { TEST_SCHEMA }); /* The second time that schemas are asked for, return two */ ! ResultSet schemaResultSet2 = buildVarcharResultSet("schemaResultSet2", new String[] { TEST_SCHEMA, "aSchema2" }); expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet1); expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet2); --- 79,85 ---- /* The first time that schemas are asked for, return just one */ ! ResultSet schemaResultSet1 = buildVarcharResultSetAsRows("schemaResultSet1", new String[] { TEST_SCHEMA }); /* The second time that schemas are asked for, return two */ ! ResultSet schemaResultSet2 = buildVarcharResultSetAsRows("schemaResultSet2", new String[] { TEST_SCHEMA, "aSchema2" }); expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet1); expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet2); *************** *** 102,108 **** /* The first time that catalogs are asked for, return just one */ ! ResultSet catalogResultSet1 = buildVarcharResultSet(null, new String[] { TEST_CATALOG }); /* The second time that catalogs are asked for, return two */ ! ResultSet catalogResultSet2 = buildVarcharResultSet(null, new String[] { TEST_CATALOG, "aCatalog2" }); expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet1); expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet2); --- 103,109 ---- /* The first time that catalogs are asked for, return just one */ ! ResultSet catalogResultSet1 = buildVarcharResultSetAsRows(null, new String[] { TEST_CATALOG }); /* The second time that catalogs are asked for, return two */ ! ResultSet catalogResultSet2 = buildVarcharResultSetAsRows(null, new String[] { TEST_CATALOG, "aCatalog2" }); expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet1); expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet2); *************** *** 125,129 **** public void testPGGetTableTypes() throws SQLException { /* Build the table types returned by PostgreSQL */ ! ResultSet mockTableTypeResultSet = buildVarcharResultSet("mockTableTypeResultSet", new String[] { "SYSTEM INDEX", "SYSTEM VIEW", "SYSTEM TABLE", "SYSTEM TOAST INDEX", "SYSTEM TOAST TABLE", "SYSTEM VIEW", "TABLE", "TEMPORARY INDEX", "TEMPORARY TABLE", "VIEW" }); --- 126,130 ---- public void testPGGetTableTypes() throws SQLException { /* Build the table types returned by PostgreSQL */ ! ResultSet mockTableTypeResultSet = buildVarcharResultSetAsRows("mockTableTypeResultSet", new String[] { "SYSTEM INDEX", "SYSTEM VIEW", "SYSTEM TABLE", "SYSTEM TOAST INDEX", "SYSTEM TOAST TABLE", "SYSTEM VIEW", "TABLE", "TEMPORARY INDEX", "TEMPORARY TABLE", "VIEW" }); *************** *** 228,243 **** } // Helper methods ! private ResultSet buildVarcharResultSet(String mockName, String[] values) throws SQLException { ResultSetMetaData rsmd = mockHelper.createMock(mockName, ResultSetMetaData.class); ! expect(rsmd.getColumnCount()).andStubReturn(1); ! expect(rsmd.getColumnType(1)).andStubReturn(java.sql.Types.VARCHAR); ! expect(rsmd.getColumnTypeName(1)).andStubReturn("varchar"); ResultSet rs = mockHelper.createMock(ResultSet.class); expect(rs.getMetaData()).andStubReturn(rsmd); for (String value : values) { expect(rs.next()).andReturn(true); - expect(rs.getString(1)).andReturn(value); expect(rs.wasNull()).andStubReturn(false); } --- 229,288 ---- } + @Test + public void testGetUDTs() throws SQLException { + + final String javaClassName = "java.lang.String"; + final String remarkValue = "remark"; + final String dataType = ""+VARCHAR; + final String[] values = new String[] { TEST_CATALOG, TEST_SCHEMA, "JAVA_OBJECT", javaClassName, dataType, remarkValue}; + final ResultSet mockResultSet = buildVarcharResultSetAsColumns("UDTResultSet", values); + mockDatabaseMetaData.getUDTs(TEST_CATALOG, TEST_SCHEMA, TEST_TABLE, null); + expectLastCall().andStubReturn(mockResultSet); + + mockHelper.replayAll(); + classUnderTest = new SQLDatabaseMetaData(mockSqlConnection); + final IUDTInfo[] result = classUnderTest.getUDTs(TEST_CATALOG, TEST_SCHEMA, TEST_TABLE, null); + assertEquals(1, result.length); + assertEquals(javaClassName, result[0].getJavaClassName()); + assertEquals(dataType, result[0].getDataType()); + assertEquals(remarkValue, result[0].getRemarks()); + mockHelper.verifyAll(); + } + // Helper methods ! private ResultSet buildVarcharResultSetAsColumns(String mockName, String[] values) throws SQLException { ResultSetMetaData rsmd = mockHelper.createMock(mockName, ResultSetMetaData.class); ! expect(rsmd.getColumnCount()).andStubReturn(values.length); ResultSet rs = mockHelper.createMock(ResultSet.class); expect(rs.getMetaData()).andStubReturn(rsmd); + + // Setup values.length columns + int count = 1; for (String value : values) { + expect(rs.getString(count)).andStubReturn(value); + expect(rs.wasNull()).andStubReturn(false); + expect(rsmd.getColumnTypeName(count)).andStubReturn("varchar"); + expect(rsmd.getColumnType(count++)).andStubReturn(java.sql.Types.VARCHAR); + } + // Setup one row + expect(rs.next()).andReturn(true); + expect(rs.next()).andReturn(false); + rs.close(); + return rs; + } + + private ResultSet buildVarcharResultSetAsRows(String mockName, String[] values) throws SQLException { + ResultSetMetaData rsmd = mockHelper.createMock(mockName, ResultSetMetaData.class); + expect(rsmd.getColumnCount()).andStubReturn(values.length); + ResultSet rs = mockHelper.createMock(ResultSet.class); + expect(rs.getMetaData()).andStubReturn(rsmd); + + // Setup one column in multiple rows + expect(rsmd.getColumnTypeName(1)).andStubReturn("varchar"); + expect(rsmd.getColumnType(1)).andStubReturn(java.sql.Types.VARCHAR); + for (String value : values) { + expect(rs.getString(1)).andStubReturn(value); expect(rs.next()).andReturn(true); expect(rs.wasNull()).andStubReturn(false); } *************** *** 246,249 **** return rs; } ! } --- 291,294 ---- return rs; } ! } |