MockMultiRowResultSet resultSet = new MockMultiRowResultSet();
ExtendedMockMultiRowResultSet resultSet = new ExtendedMockMultiRowResultSet();
    public void testGetValueOnLastRowIsClosingResultSet() throws Exception    {        String tableName = "TABLE";        String[] columnNames = {"C0"};//        String[] columnNames = {"C0", "C1", "C2"};        Object[][] expectedValues = new Object[][]{            new Object[]{"1", "2", "3"},            new Object[]{"4", "5", "6"},            new Object[]{"7", "8", "9"},        };        // Setup resultset        MockMultiRowResultSet resultSet = new MockMultiRowResultSet();        resultSet.setExpectedCloseCalls(1);        resultSet.setupColumnNames(columnNames);        resultSet.setupRows(expectedValues);        // Create table        MockTableMetaData metaData = new MockTableMetaData(tableName, columnNames);        ForwardOnlyResultSetTable table =                new ForwardOnlyResultSetTable(metaData, resultSet);        // Excercise getValue()        try        {            Column[] columns = table.getTableMetaData().getColumns();            for (int i = 0; ; i++)            {                for (int j = 0; j < columns.length; j++)                {                    String columnName = columns[j].getColumnName();                    Object actualValue = table.getValue(i, columnName);                    Object expectedValue = expectedValues[i][j];                    assertEquals("row=" + i + ", col=" + columnName,                            expectedValue, actualValue);                }            }        }        catch(RowOutOfBoundsException e)        {            // end of table        }        // Verify that ResultSet have been closed        resultSet.verify();    }