SelectResultSet extends AbstractResultSet { @Override public String getString(int variableIndex) { ensureState(); return getString(getVariableAt(variableIndex)); } SelectResultSet(QueryExecution execution, ResultSet jenaResult); @Override int findColumn(String variableName); @Override int getColumnCount(); @Override boolean isBound(int variableIndex); @Override boolean isBound(String variableName); @Override boolean getBoolean(int variableIndex); @Override boolean getBoolean(String variableName); @Override byte getByte(int variableIndex); @Override byte getByte(String variableName); @Override double getDouble(int variableIndex); @Override double getDouble(String variableName); @Override float getFloat(int variableIndex); @Override float getFloat(String variableName); @Override int getInt(int variableIndex); @Override int getInt(String variableName); @Override long getLong(int variableIndex); @Override long getLong(String variableName); @Override Object getObject(int variableIndex); @Override Object getObject(String variableName); @Override T getObject(int variableIndex, Class<T> cls); @Override T getObject(String variableName, Class<T> cls); @Override short getShort(int variableIndex); @Override short getShort(String variableName); @Override String getString(int variableIndex); @Override String getString(String variableName); @Override boolean hasNext(); @Override void next(); @Override void close();  }
@Test void getStringByIndexThrowsIllegalStateExceptionWhenCalledBeforeNext() { model.add(SUBJECT, RDF.type, TYPE_ONE); this.selectResult = resultFor(QUERY); final IllegalStateException ex = assertThrows(IllegalStateException.class, () -> selectResult.getString(0)); assertEquals("Must call next before getting any values.", ex.getMessage()); }