ArrangeableModel extends ExtendedDataModel<Object> implements Arrangeable { public Object getRowData() { return originalModel.getRowData(); } ArrangeableModel(ExtendedDataModel<?> originalModel, String var, String filterVar); void addDataModelListener(DataModelListener listener); void removeDataModelListener(DataModelListener listener); DataModelListener[] getDataModelListeners(); Object getRowKey(); void setRowKey(Object key); void walk(FacesContext context, DataVisitor visitor, Range range, Object argument); int getRowCount(); Object getRowData(); int getRowIndex(); Object getWrappedData(); boolean isRowAvailable(); void setRowIndex(int rowIndex); void setWrappedData(Object data); void arrange(FacesContext context, ArrangeableState state);  }
@Test public void testGetRowData() { boolean caught = false; arrangeableModel.setRowKey(null); try { arrangeableModel.getRowData(); } catch (IllegalArgumentException e) { caught = true; } finally { Assert.assertTrue(caught); } arrangeableModel.setRowKey(ROW_KEY); Assert.assertEquals(arrangeableModel.getRowData(), extendedDataModel.getRowData()); caught = false; arrangeableModel.setRowKey(extendedDataModel.getRowCount()); try { arrangeableModel.getRowData(); } catch (IllegalArgumentException e) { caught = true; } finally { Assert.assertTrue(caught); } }