Add "Describe" command, with support for describing both (a) specific table(s) and...
[squelch.git] / src / test / java / net / jaekl / squelch / sql / ResultSetMock.java
index b398e24c05ca80af41c3f2dc70688526fd9bd4ac..a2f8a99f4b6c842ea5601d90458acc98317148bf 100644 (file)
@@ -25,18 +25,24 @@ import java.util.Map;
 
 
 public class ResultSetMock implements ResultSet {
-       private ResultSetMetaDataMock m_metaDataMock;
-       private ArrayList<Row> m_rows;
-       private int m_rowNum;
+       private ResultSetMetaDataMock mock_metaDataMock;
+       private ArrayList<Row> mock_rows;
+       private int mock_rowIdx;
        
        public ResultSetMock() {
-               m_metaDataMock = new ResultSetMetaDataMock();
-               m_rows = new ArrayList<Row>();
-               m_rowNum = -1;
+               mock_metaDataMock = new ResultSetMetaDataMock();
+               mock_rows = new ArrayList<Row>();
+               mock_rowIdx = -1;
        }
        
        public void mock_addRow(Row row) {
-               m_rows.add(row);
+               mock_rows.add(row);
+       }
+       
+       public void mock_addRows(Row[] rows) {
+               for (Row row : rows) {
+                       mock_addRow(row);
+               }
        }
 
        @Override
@@ -317,9 +323,17 @@ public class ResultSetMock implements ResultSet {
        }
 
        @Override
-       public int getInt(int arg0) throws SQLException {
-               throw new UnsupportedOperationException("Not yet implemented.");
-               
+       public int getInt(int idx) throws SQLException {
+               Row row = mock_rows.get(mock_rowIdx);
+               Object obj = row.getValue(idx);
+               if (null == obj) {
+                       return 0;
+               }
+               if (obj instanceof Number) {
+                       Number num = (Number)obj;
+                       return num.intValue();
+               }
+               throw new SQLException("Invalid type");
        }
 
        @Override
@@ -330,7 +344,7 @@ public class ResultSetMock implements ResultSet {
 
        @Override
        public long getLong(int idx) throws SQLException {
-               Row row = m_rows.get(m_rowNum);
+               Row row = mock_rows.get(mock_rowIdx);
                return (Long)(row.getValue(idx));
        }
 
@@ -342,7 +356,7 @@ public class ResultSetMock implements ResultSet {
 
        @Override
        public ResultSetMetaData getMetaData() throws SQLException {
-               return m_metaDataMock;
+               return mock_metaDataMock;
        }
 
        @Override
@@ -383,7 +397,7 @@ public class ResultSetMock implements ResultSet {
 
        @Override
        public Object getObject(int idx) throws SQLException {
-               Row row = m_rows.get(m_rowNum);
+               Row row = mock_rows.get(mock_rowIdx);
                return row.getValue(idx);
        }
 
@@ -481,7 +495,7 @@ public class ResultSetMock implements ResultSet {
 
        @Override
        public String getString(int idx) throws SQLException {
-               Row row = m_rows.get(m_rowNum);
+               Row row = mock_rows.get(mock_rowIdx);
                return (String)(row.getValue(idx));
        }
 
@@ -493,7 +507,7 @@ public class ResultSetMock implements ResultSet {
 
        @Override
        public Time getTime(int idx) throws SQLException {
-               Row row = m_rows.get(m_rowNum);
+               Row row = mock_rows.get(mock_rowIdx);
                return new Time(((java.util.Date)row.getValue(idx)).getTime());
        }
 
@@ -634,7 +648,12 @@ public class ResultSetMock implements ResultSet {
 
        @Override
        public boolean next() throws SQLException {
-               return false;
+               if (null == mock_rows) {
+                       return false;
+               }
+               
+               mock_rowIdx++;
+               return (mock_rowIdx < mock_rows.size());
        }
 
        @Override