import java.sql.ResultSet;
import java.sql.RowIdLifetime;
import java.sql.SQLException;
+import java.util.HashMap;
public class DatabaseMetaDataMock implements DatabaseMetaData {
+ private HashMap<String, ResultSetMock> mock_colMap;
+ private HashMap<String, ResultSetMock> mock_tableMap;
+
+ public DatabaseMetaDataMock() {
+ mock_colMap = new HashMap<String, ResultSetMock>();
+ mock_tableMap = new HashMap<String, ResultSetMock>();
+ }
+
+ private String mock_colRSKey(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) {
+ return "" + catalog + ":" + schemaPattern + ":" + tableNamePattern + ":" + columnNamePattern;
+ }
+
+ public void mock_setColRS(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern, ResultSetMock value) {
+ String key = mock_colRSKey(catalog, schemaPattern, tableNamePattern, columnNamePattern);
+ mock_colMap.put(key, value);
+ }
+
+ public void mock_setTableRS(String catalog, String schemaPattern, String tableNamePattern, String[] types, ResultSetMock value) {
+ String key = mock_tableKey(catalog, schemaPattern, tableNamePattern, types);
+ mock_tableMap.put(key, value);
+ }
+ private String mock_tableKey(String catalog, String schemaPattern, String tableNamePattern, String[] types) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("" + catalog + ":" + schemaPattern + ":" + tableNamePattern);
+ if (null != types) {
+ for (String s : types) {
+ sb.append(":" + s);
+ }
+ }
+ return sb.toString();
+ }
+
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean allProceduresAreCallable() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean allTablesAreSelectable() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean deletesAreDetected(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean generatedKeyAlwaysReturned() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getAttributes(String catalog, String schemaPattern,
String typeNamePattern, String attributeNamePattern)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getBestRowIdentifier(String catalog, String schema,
String table, int scope, boolean nullable) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getCatalogSeparator() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getCatalogTerm() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getCatalogs() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getClientInfoProperties() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getColumnPrivileges(String catalog, String schema,
String table, String columnNamePattern) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
- public ResultSet getColumns(String catalog, String schemaPattern,
- String tableNamePattern, String columnNamePattern)
- throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)
+ throws SQLException
+ {
+ String key = mock_colRSKey(catalog, schemaPattern, tableNamePattern, columnNamePattern);
+ ResultSetMock rsm = mock_colMap.get(key);
+ if (null == rsm) {
+ rsm = new ResultSetMock();
+ }
+ return rsm;
}
@Override
public Connection getConnection() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getCrossReference(String parentCatalog,
String parentSchema, String parentTable, String foreignCatalog,
String foreignSchema, String foreignTable) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getDatabaseMajorVersion() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getDatabaseMinorVersion() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getDatabaseProductName() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getDatabaseProductVersion() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getDefaultTransactionIsolation() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getDriverMajorVersion() {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getDriverMinorVersion() {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getDriverName() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getDriverVersion() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getExportedKeys(String catalog, String schema, String table)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getExtraNameCharacters() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getFunctionColumns(String catalog, String schemaPattern,
String functionNamePattern, String columnNamePattern)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getFunctions(String catalog, String schemaPattern,
String functionNamePattern) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getIdentifierQuoteString() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getImportedKeys(String catalog, String schema, String table)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getIndexInfo(String catalog, String schema, String table,
boolean unique, boolean approximate) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getJDBCMajorVersion() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getJDBCMinorVersion() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxBinaryLiteralLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxCatalogNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxCharLiteralLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxColumnNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxColumnsInGroupBy() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxColumnsInIndex() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxColumnsInOrderBy() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxColumnsInSelect() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxColumnsInTable() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxConnections() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxCursorNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxIndexLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxProcedureNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxRowSize() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxSchemaNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxStatementLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxStatements() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxTableNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxTablesInSelect() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getMaxUserNameLength() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getNumericFunctions() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getPrimaryKeys(String catalog, String schema, String table)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getProcedureColumns(String catalog, String schemaPattern,
String procedureNamePattern, String columnNamePattern)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getProcedureTerm() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getProcedures(String catalog, String schemaPattern,
String procedureNamePattern) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getPseudoColumns(String catalog, String schemaPattern,
String tableNamePattern, String columnNamePattern)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getResultSetHoldability() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public RowIdLifetime getRowIdLifetime() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getSQLKeywords() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public int getSQLStateType() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getSchemaTerm() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getSchemas() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getSchemas(String catalog, String schemaPattern)
throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getSearchStringEscape() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getStringFunctions() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getSuperTables(String catalog, String schemaPattern,
String tableNamePattern) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getSuperTypes(String catalog, String schemaPattern,
String typeNamePattern) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getSystemFunctions() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getTablePrivileges(String catalog, String schemaPattern,
String tableNamePattern) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getTableTypes() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
throws SQLException
{
- ResultSetMock result = new ResultSetMock();
+ String key = mock_tableKey(catalog, schemaPattern, tableNamePattern, types);
+ ResultSetMock result = mock_tableMap.get(key);
+ if (null == result) {
+ result = new ResultSetMock();
+ }
return result;
}
@Override
public String getTimeDateFunctions() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getTypeInfo() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getUDTs(String catalog, String schemaPattern,
String typeNamePattern, int[] types) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getURL() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public String getUserName() throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public ResultSet getVersionColumns(String catalog, String schema,
String table) throws SQLException {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean insertsAreDetected(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean isCatalogAtStart() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean isReadOnly() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean locatorsUpdateCopy() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean nullPlusNonNullIsNull() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean nullsAreSortedAtEnd() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean nullsAreSortedAtStart() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean nullsAreSortedHigh() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean nullsAreSortedLow() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean othersDeletesAreVisible(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean othersInsertsAreVisible(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean othersUpdatesAreVisible(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean ownDeletesAreVisible(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean ownInsertsAreVisible(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean ownUpdatesAreVisible(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean storesLowerCaseIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean storesMixedCaseIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean storesUpperCaseIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsANSI92EntryLevelSQL() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsANSI92FullSQL() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsANSI92IntermediateSQL() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsAlterTableWithAddColumn() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsAlterTableWithDropColumn() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsBatchUpdates() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCatalogsInDataManipulation() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCatalogsInProcedureCalls() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCatalogsInTableDefinitions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsColumnAliasing() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsConvert() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsConvert(int fromType, int toType)
throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCoreSQLGrammar() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsCorrelatedSubqueries() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsDataDefinitionAndDataManipulationTransactions()
throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsDataManipulationTransactionsOnly()
throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsDifferentTableCorrelationNames() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsExpressionsInOrderBy() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsExtendedSQLGrammar() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsFullOuterJoins() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsGetGeneratedKeys() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsGroupBy() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsGroupByBeyondSelect() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsGroupByUnrelated() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsIntegrityEnhancementFacility() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsLikeEscapeClause() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsLimitedOuterJoins() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsMinimumSQLGrammar() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsMixedCaseIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsMultipleOpenResults() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsMultipleResultSets() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsMultipleTransactions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsNamedParameters() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsNonNullableColumns() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsOrderByUnrelated() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsOuterJoins() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsPositionedDelete() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsPositionedUpdate() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsResultSetConcurrency(int type, int concurrency)
throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsResultSetHoldability(int holdability)
throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsResultSetType(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSavepoints() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSchemasInDataManipulation() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSchemasInIndexDefinitions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSchemasInProcedureCalls() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSchemasInTableDefinitions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSelectForUpdate() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsStatementPooling() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsStoredProcedures() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSubqueriesInComparisons() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSubqueriesInExists() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSubqueriesInIns() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsSubqueriesInQuantifieds() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsTableCorrelationNames() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsTransactionIsolationLevel(int level)
throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsTransactions() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsUnion() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean supportsUnionAll() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean updatesAreDetected(int type) throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean usesLocalFilePerTable() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
@Override
public boolean usesLocalFiles() throws SQLException {
- // TODO Auto-generated method stub
- return false;
+ throw new UnsupportedOperationException("Not yet implemented");
+
}
}
--- /dev/null
+package net.jaekl.squelch.stmt;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
+
+import net.jaekl.squelch.db.DbDriverMock;
+import net.jaekl.squelch.sql.ConnectionMock;
+import net.jaekl.squelch.sql.DatabaseMetaDataMock;
+import net.jaekl.squelch.sql.ResultSetMock;
+import net.jaekl.squelch.sql.Row;
+
+import org.junit.Test;
+
+public class DescribeTest {
+
+ @Test
+ public void testHandles() {
+ final String[] AFFIRMATIVE = {
+ "\\d", "\\d ", " \\d", " \\d ",
+ "describe", "describe ", " describe", " describe ",
+ "DESCRIBE", "DESCRIBE ", " DESCRIBE", " DESCRIBE ",
+ "descRIbe", "DEscribE ", " DEScribe", " DEscRIbE ",
+ "\\d tablename", "\\d tablename ", " \\d tablename", " \\d tableName ",
+ "describe tablename", "DESCRIBE tablename ", " DesCrIbE tablename", " DESCribE fred "
+ };
+ final String[] NEGATIVE = {
+ "\\d\\q", "", null, " ", "select * from foo", " select * from foo ",
+ "DESCRIBEQ", "describeFOO", " describeJackAndDianne "
+ };
+
+ Describe describe = new Describe();
+ for (String s : AFFIRMATIVE) {
+ assertTrue("handles " + s, describe.handles(s));
+ }
+ for (String s : NEGATIVE) {
+ assertFalse("does not handle " + s, describe.handles(s));
+ }
+ }
+
+ @Test
+ public void testDescribeAll_noTables() throws IOException, SQLException
+ {
+ DatabaseMetaDataMock dbmdm = new DatabaseMetaDataMock();
+ Describe describe = new Describe();
+
+ try (
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8));
+ )
+ {
+ describe.describeAll(pw, dbmdm);
+ pw.close();
+ baos.close();
+ String actual = baos.toString();
+ final String EXPECTED = "???\n";
+ assertEquals(EXPECTED, actual);
+ }
+ }
+
+ @Test
+ public void testDescribeTable_noColumns()
+ throws IOException, SQLException
+ {
+ DatabaseMetaDataMock dbmdm = new DatabaseMetaDataMock();
+ Describe describe = new Describe();
+
+ try (
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8));
+ )
+ {
+ describe.describeTable(pw, dbmdm, "%");
+ pw.close();
+ baos.close();
+ String actual = baos.toString();
+ final String EXPECTED = "??? %\n";
+ assertEquals(EXPECTED, actual);
+ }
+ }
+
+ private DatabaseMetaDataMock construct_runs_dbmdm()
+ {
+ ResultSetMock rsmCols = new ResultSetMock();
+ ResultSetMock rsmTables = new ResultSetMock();
+
+ DatabaseMetaDataMock dbmdm = new DatabaseMetaDataMock();
+ Row[] rows = {
+ new Row(new Object[]{
+ null, // 1) table_cat
+ "public", // 2) table schema
+ "runs", // 3) table name
+ "runid", // 4) column name
+ Integer.valueOf(4), // 5) data type
+ "int4", // 6) type name
+ Integer.valueOf(10), // 7) column size
+ null, // 8) buffer length
+ null, // 9) decimal digits
+ Integer.valueOf(10), // 10) num_prec_radix
+ Integer.valueOf(DatabaseMetaData.columnNoNulls), // 11) nullable
+ null, // 12) remarks
+ null, // 13) default value for the column
+ Integer.valueOf(0), // 14) sql_data_type
+ Integer.valueOf(0), // 15) sql_datetime_sub
+ null, // 16) char_octet_length
+ Integer.valueOf(1), // 17) ordinal_position
+ "NO", // 18) is_nullable
+ null, // 19) scope_catalog
+ null, // 20) scope_schema
+ null, // 21) scope_table
+ null, // 22) source_data_type
+ "NO", // 23) is_autoincrement
+ "NO" // 24) is_generated_column
+ }),
+ new Row(new Object[]{
+ null, // 1) table_cat
+ "public", // 2) table schema
+ "runs", // 3) table name
+ "projname", // 4) column name
+ Integer.valueOf(12), // 5) data type
+ "varchar", // 6) type name
+ Integer.valueOf(80), // 7) column size
+ null, // 8) buffer length
+ null, // 9) decimal digits
+ Integer.valueOf(10), // 10) num_prec_radix
+ Integer.valueOf(DatabaseMetaData.columnNoNulls), // 11) nullable
+ null, // 12) remarks
+ null, // 13) default value for the column
+ Integer.valueOf(0), // 14) sql_data_type
+ Integer.valueOf(0), // 15) sql_datetime_sub
+ null, // 16) char_octet_length
+ Integer.valueOf(2), // 17) ordinal_position
+ "NO", // 18) is_nullable
+ null, // 19) scope_catalog
+ null, // 20) scope_schema
+ null, // 21) scope_table
+ null, // 22) source_data_type
+ "NO", // 23) is_autoincrement
+ "NO" // 24) is_generated_column
+ }),
+ new Row(new Object[]{
+ null, // 1) table_cat
+ "public", // 2) table schema
+ "runs", // 3) table name
+ "version", // 4) column name
+ Integer.valueOf(12), // 5) data type
+ "varchar", // 6) type name
+ Integer.valueOf(10), // 7) column size
+ null, // 8) buffer length
+ null, // 9) decimal digits
+ Integer.valueOf(10), // 10) num_prec_radix
+ Integer.valueOf(DatabaseMetaData.columnNullable), // 11) nullable
+ null, // 12) remarks
+ null, // 13) default value for the column
+ Integer.valueOf(0), // 14) sql_data_type
+ Integer.valueOf(0), // 15) sql_datetime_sub
+ null, // 16) char_octet_length
+ Integer.valueOf(1), // 17) ordinal_position
+ "YES", // 18) is_nullable
+ null, // 19) scope_catalog
+ null, // 20) scope_schema
+ null, // 21) scope_table
+ null, // 22) source_data_type
+ "NO", // 23) is_autoincrement
+ "NO" // 24) is_generated_column
+ })
+ };
+ rsmCols.mock_addRows(rows);
+
+ rows = new Row[] {
+ new Row(new Object[]{
+ null, // TABLE_CAT String => table catalog (may be null)
+ null, // TABLE_SCHEM String => table schema (may be null)
+ "runs", // TABLE_NAME String => table name
+ "TABLE", // TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
+ "", // REMARKS String => explanatory comment on the table
+ null, // TYPE_CAT String => the types catalog (may be null)
+ null, // TYPE_SCHEM String => the types schema (may be null)
+ null, // TYPE_NAME String => type name (may be null)
+ null, // SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null)
+ null // REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)
+ })
+ };
+ rsmTables.mock_addRows(rows);
+
+ dbmdm.mock_setColRS(null, null, "runs", null, rsmCols);
+ dbmdm.mock_setTableRS(null, null, "runs", null, rsmTables);
+
+ return dbmdm;
+ }
+
+ private String construct_runs_expected() {
+ return "TABLE runs\n"
+ + "+--------+-----------+---------+\n"
+ + "| Column | Type |Modifiers|\n"
+ + "+--------+-----------+---------+\n"
+ + "|runid |int4(10) |NOT NULL |\n"
+ + "|projname|varchar(80)|NOT NULL |\n"
+ + "|version |varchar(10)|NULL |\n"
+ + "+--------+-----------+---------+\n"
+ + "3 row(s) returned.\n";
+ }
+
+ @Test
+ public void testDescribeTable_threeColumns()
+ throws IOException, SQLException
+ {
+ DatabaseMetaDataMock dbmdm = construct_runs_dbmdm();
+ Describe describe = new Describe();
+
+ try (
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8));
+ )
+ {
+ describe.describeTable(pw, dbmdm, "runs");
+ pw.close();
+ baos.close();
+ String actual = baos.toString();
+ String expected = construct_runs_expected();
+
+ assertEquals(expected, actual);
+ }
+ }
+
+ @Test
+ public void testExec() throws IOException, SQLException
+ {
+ final String[] SUCCESSFUL = {
+ "\\d runs", " \\d runs", "\\d runs ", " \\d runs ",
+ "DESCRIBE runs", " DescRIBe runs", "describe runs ", " describe runs "
+ };
+ String expected = construct_runs_expected();
+ for (String stmt : SUCCESSFUL) {
+ String actual = doExec(stmt);
+ assertEquals("doExec(): " + stmt, expected, actual);
+ }
+ }
+
+ public String doExec(String stmt) throws IOException, SQLException
+ {
+ DatabaseMetaDataMock dbmdm = construct_runs_dbmdm();
+ DbDriverMock driver = new DbDriverMock();
+ ConnectionMock cm = new ConnectionMock();
+ cm.mock_setDatabaseMetaData(dbmdm);
+
+ Describe describe = new Describe();
+
+ try (
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8));
+ )
+ {
+ describe.exec(driver, cm, pw, stmt);
+ pw.close();
+ baos.close();
+ String actual = baos.toString();
+
+ return actual;
+ }
+ }
+}