diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java index 9bad91e546e7d0d84d7be86218637a6d3e151c54..a0358be11afc0aa41f6091df1b4d1b9da1bdb161 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java @@ -62,11 +62,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo.SortDir; @Friend(toClasses = CachedResultSetManager.class) public final class CachedResultSetManagerTest extends AssertJUnit { - private static final IColumnDefinition<String> DEF1 = createColDef("col1", "-", 0); + private static final IColumnDefinition<DataHolder> DEF1 = createColDef("col1", "-", 0); - private static final IColumnDefinition<String> DEF2 = createColDef("col2", "-", 1); + private static final IColumnDefinition<DataHolder> DEF2 = createColDef("col2", "-", 1); - private static final List<IColumnDefinition<String>> COL_DEFS = + private static final List<IColumnDefinition<DataHolder>> COL_DEFS = createExampleColumnDefinitions(); private static final Long KEY = new Long(42); @@ -79,41 +79,41 @@ public final class CachedResultSetManagerTest extends AssertJUnit private static final class ResultSetConfigBuilder { - private final Map<String, IColumnDefinition<String>> cols; + private final Map<String, IColumnDefinition<DataHolder>> cols; - private final DefaultResultSetConfig<Long, String> resultSetConfig; + private final DefaultResultSetConfig<Long, DataHolder> resultSetConfig; - private final List<GridColumnFilterInfo<String>> columnFilters; + private final List<GridColumnFilterInfo<DataHolder>> columnFilters; - private CustomFilterInfo<String> customFilter; + private CustomFilterInfo<DataHolder> customFilter; - public ResultSetConfigBuilder(List<IColumnDefinition<String>> columnDefinitions) + public ResultSetConfigBuilder(List<IColumnDefinition<DataHolder>> columnDefinitions) { - cols = new HashMap<String, IColumnDefinition<String>>(); - for (IColumnDefinition<String> def : columnDefinitions) + cols = new HashMap<String, IColumnDefinition<DataHolder>>(); + for (IColumnDefinition<DataHolder> def : columnDefinitions) { cols.put(def.getIdentifier(), def); } - resultSetConfig = new DefaultResultSetConfig<Long, String>(); - columnFilters = new ArrayList<GridColumnFilterInfo<String>>(); + resultSetConfig = new DefaultResultSetConfig<Long, DataHolder>(); + columnFilters = new ArrayList<GridColumnFilterInfo<DataHolder>>(); } - + ResultSetConfigBuilder customColumn(String code, DataTypeCode dataType) { - return column(new GridCustomColumnDefinition<String>(new GridCustomColumnInfo(code, + return column(new GridCustomColumnDefinition<DataHolder>(new GridCustomColumnInfo(code, code, "", dataType))); } - - ResultSetConfigBuilder column(IColumnDefinition<String> colDef) + + ResultSetConfigBuilder column(IColumnDefinition<DataHolder> colDef) { cols.put(colDef.getIdentifier(), colDef); return this; } - IResultSetConfig<Long, String> get() + IResultSetConfig<Long, DataHolder> get() { - resultSetConfig.setAvailableColumns(new LinkedHashSet<IColumnDefinition<String>>(cols - .values())); + resultSetConfig.setAvailableColumns(new LinkedHashSet<IColumnDefinition<DataHolder>>( + cols.values())); System.out.println(resultSetConfig.getAvailableColumns().size()); if (columnFilters.isEmpty() == false) { @@ -184,8 +184,8 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder visibleColumns(String... ids) { - List<IColumnDefinition<String>> presentedColumns = - new ArrayList<IColumnDefinition<String>>(); + List<IColumnDefinition<DataHolder>> presentedColumns = + new ArrayList<IColumnDefinition<DataHolder>>(); for (String id : ids) { presentedColumns.add(getDefinition(id)); @@ -197,8 +197,8 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder columnFilter(String columnDefinitionID, String filterValue) { assertEquals(null, customFilter); - columnFilters.add(new GridColumnFilterInfo<String>(getDefinition(columnDefinitionID), - filterValue)); + columnFilters.add(new GridColumnFilterInfo<DataHolder>( + getDefinition(columnDefinitionID), filterValue)); return this; } @@ -213,7 +213,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit String value = binding.substring(index + 1); parameters.add(new ParameterWithValue(parameter, value)); } - customFilter = new CustomFilterInfo<String>(); + customFilter = new CustomFilterInfo<DataHolder>(); customFilter.setExpression(expression); customFilter.setParameters(parameters); return this; @@ -225,21 +225,23 @@ public final class CachedResultSetManagerTest extends AssertJUnit return this; } - private SortInfo<String> createSortInfo(String columnDefinitionID, SortDir sortingDirection) + private SortInfo<DataHolder> createSortInfo(String columnDefinitionID, + SortDir sortingDirection) { - SortInfo<String> sortInfo = new SortInfo<String>(); + SortInfo<DataHolder> sortInfo = new SortInfo<DataHolder>(); sortInfo.setSortField(getDefinition(columnDefinitionID)); sortInfo.setSortDir(sortingDirection); return sortInfo; } - private IColumnDefinition<String> getDefinition(String id) + private IColumnDefinition<DataHolder> getDefinition(String id) { - IColumnDefinition<String> def = cols.get(id); + IColumnDefinition<DataHolder> def = cols.get(id); if (def == null) { - def = new GridCustomColumnDefinition<String>(new GridCustomColumnInfo(id, - id, "", DataTypeCode.VARCHAR)); + def = + new GridCustomColumnDefinition<DataHolder>(new GridCustomColumnInfo(id, id, + "", DataTypeCode.VARCHAR)); cols.put(id, def); } return def; @@ -258,7 +260,8 @@ public final class CachedResultSetManagerTest extends AssertJUnit return rowModels; } - private static final class ColumnCalculatorProxy implements CachedResultSetManager.IColumnCalculator + private static final class ColumnCalculatorProxy implements + CachedResultSetManager.IColumnCalculator { private List<String> recordedColumnCodes = new ArrayList<String>(); @@ -280,7 +283,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit } } - private IOriginalDataProvider<String> originalDataProvider; + private IOriginalDataProvider<DataHolder> originalDataProvider; private IResultSetManager<Long> resultSetManager; @@ -356,15 +359,15 @@ public final class CachedResultSetManagerTest extends AssertJUnit private void getAndCheckRows(int expectedSize, int expectedOffset, ResultSetConfigBuilder builder) { - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals("size", expectedSize, list.size()); for (int i = 0; i < list.size(); i++) { int n = expectedOffset + i; - assertEquals(i + "th row", n + "-a" + n % 2, list.get(i).getOriginalObject()); + assertEquals(i + "th row", n + "-a" + n % 2, list.get(i).getOriginalObject().getData()); } } @@ -374,7 +377,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit prepareDataAndCustomColumnDefinitions(0); ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS).displayID(GRID_DISPLAY_ID); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); assertEquals(0, resultSet.getList().size()); @@ -439,15 +442,15 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS).displayID(GRID_DISPLAY_ID); builder.sortAsc("col2"); - IResultSet<Long, String> data = + IResultSet<Long, DataHolder> data = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); assertEquals(3, data.getTotalLength()); - GridRowModels<String> list = data.getList(); + GridRowModels<DataHolder> list = data.getList(); assertEquals(3, list.size()); - assertEquals("0-a0", list.get(0).getOriginalObject()); - assertEquals("2-a0", list.get(1).getOriginalObject()); - assertEquals("1-a1", list.get(2).getOriginalObject()); + assertEquals("0-a0", getData(list, 0)); + assertEquals("2-a0", getData(list, 1)); + assertEquals("1-a1", getData(list, 2)); builder.fetchFromCache(KEY).sortDesc("col1"); data = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); @@ -455,9 +458,9 @@ public final class CachedResultSetManagerTest extends AssertJUnit assertEquals(3, data.getTotalLength()); list = data.getList(); assertEquals(3, list.size()); - assertEquals("2-a0", list.get(0).getOriginalObject()); - assertEquals("1-a1", list.get(1).getOriginalObject()); - assertEquals("0-a0", list.get(2).getOriginalObject()); + assertEquals("2-a0", getData(list, 0)); + assertEquals("1-a1", getData(list, 1)); + assertEquals("0-a0", getData(list, 2)); context.assertIsSatisfied(); } @@ -466,15 +469,15 @@ public final class CachedResultSetManagerTest extends AssertJUnit public void testComputeAndCache() { prepareDataAndCustomColumnDefinitions(3); - IResultSet<Long, String> data = getDataFirstTime(); + IResultSet<Long, DataHolder> data = getDataFirstTime(); assertEquals(KEY, data.getResultSetKey()); assertEquals(3, data.getTotalLength()); - GridRowModels<String> list = data.getList(); + GridRowModels<DataHolder> list = data.getList(); assertEquals(3, list.size()); - assertEquals("0-a0", list.get(0).getOriginalObject()); - assertEquals("1-a1", list.get(1).getOriginalObject()); - assertEquals("2-a0", list.get(2).getOriginalObject()); + assertEquals("0-a0", getData(list, 0)); + assertEquals("1-a1", getData(list, 1)); + assertEquals("2-a0", getData(list, 2)); assertEquals(0, list.getColumnDistinctValues().size()); assertEquals(0, list.getCustomColumnsMetadata().size()); @@ -489,18 +492,18 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.fetchFromCache(KEY).columnFilter("col1", "1").columnFilter("col2", "0"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); assertEquals(KEY, resultSet.getResultSetKey()); assertEquals(5, resultSet.getTotalLength()); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(5, list.size()); - assertEquals("10-a0", list.get(0).getOriginalObject()); - assertEquals("12-a0", list.get(1).getOriginalObject()); - assertEquals("14-a0", list.get(2).getOriginalObject()); - assertEquals("16-a0", list.get(3).getOriginalObject()); - assertEquals("18-a0", list.get(4).getOriginalObject()); + assertEquals("10-a0", getData(list, 0)); + assertEquals("12-a0", getData(list, 1)); + assertEquals("14-a0", getData(list, 2)); + assertEquals("16-a0", getData(list, 3)); + assertEquals("18-a0", getData(list, 4)); context.assertIsSatisfied(); } @@ -514,19 +517,19 @@ public final class CachedResultSetManagerTest extends AssertJUnit "toInt(row.col('col1')) >= ${min} and toInt(row.col('col1')) <= ${max}", "min=10", "max=12"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); assertEquals(KEY, resultSet.getResultSetKey()); assertEquals(3, resultSet.getTotalLength()); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(3, list.size()); - assertEquals("10-a0", list.get(0).getOriginalObject()); - assertEquals("11-a1", list.get(1).getOriginalObject()); - assertEquals("12-a0", list.get(2).getOriginalObject()); + assertEquals("10-a0", getData(list, 0)); + assertEquals("11-a1", getData(list, 1)); + assertEquals("12-a0", getData(list, 2)); context.assertIsSatisfied(); } - + @Test public void testDistinctValues() { @@ -535,7 +538,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit new ResultSetConfigBuilder(COL_DEFS).displayID(GRID_DISPLAY_ID); builder.columnFilter("col1", "").columnFilter("col2", ""); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); List<ColumnDistinctValues> list = resultSet.getList().getColumnDistinctValues(); @@ -555,10 +558,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.displayID(GRID_DISPLAY_ID); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); List<GridCustomColumnInfo> metaData = list.getCustomColumnsMetadata(); assertEquals(2, metaData.size()); assertEquals("$c1", metaData.get(0).getCode()); @@ -575,10 +578,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.displayID(GRID_DISPLAY_ID).visibleColumns("$c1"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(3, list.size()); assertEquals("0-a0 0", render(list.get(0))); assertEquals("1-a1 2", render(list.get(1))); @@ -598,10 +601,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.displayID(GRID_DISPLAY_ID).visibleColumns("$c1"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(3, list.size()); assertEquals("0-a0 7", render(list.get(0))); assertEquals("1-a1 7", render(list.get(1))); @@ -620,10 +623,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.displayID(GRID_DISPLAY_ID).visibleColumns("$c1").sortDesc("$c1"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(3, list.size()); assertEquals("2-a0 4", render(list.get(0))); assertEquals("1-a1 2", render(list.get(1))); @@ -642,10 +645,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.displayID(GRID_DISPLAY_ID).columnFilter("$c1", "2"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(1, list.size()); assertEquals("1-a1 2", render(list.get(0))); assertEquals("[$c1]", columnCalculator.toString()); @@ -663,10 +666,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit builder.visibleColumns("$c1").visibleColumns(); // creating an available column builder.customFilter("toInt(row.col('$c1')) < ${threshold}", "threshold=3"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(2, list.size()); assertEquals("0-a0 0", render(list.get(0))); assertEquals("1-a1 2", render(list.get(1))); @@ -674,7 +677,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit context.assertIsSatisfied(); } - + @Test public void testCustomFilterBasedOnNonVisibleCustomColumnWithNotUsedSecondCustomColumn() { @@ -682,21 +685,21 @@ public final class CachedResultSetManagerTest extends AssertJUnit final GridCustomColumn c2 = customColumn("$c2", "toInt(row.col('col1')) * 3"); prepareDataAndCustomColumnDefinitions(3, c1, c2); ResultSetConfigBuilder builder = - new ResultSetConfigBuilder(COL_DEFS).displayID(GRID_DISPLAY_ID); + new ResultSetConfigBuilder(COL_DEFS).displayID(GRID_DISPLAY_ID); builder.customColumn("$c1", DataTypeCode.INTEGER); builder.customColumn("$c2", DataTypeCode.INTEGER); builder.visibleColumns(); // creating an available column builder.customFilter("toInt(row.col('$c1')) < ${threshold}", "threshold=3"); - - IResultSet<Long, String> resultSet = - resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - - GridRowModels<String> list = resultSet.getList(); + + IResultSet<Long, DataHolder> resultSet = + resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); + + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(2, list.size()); assertEquals("0-a0 0", render(list.get(0))); assertEquals("1-a1 2", render(list.get(1))); assertEquals("[$c1]", columnCalculator.toString()); - + context.assertIsSatisfied(); } @@ -737,7 +740,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit will(returnValue(KEY)); one(originalDataProvider).getOriginalData(); - will(returnValue(Arrays.asList("a", "b"))); + will(returnValue(createDataList())); one(originalDataProvider).getHeaders(); will(returnValue(Arrays.asList())); @@ -771,10 +774,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS); builder.displayID(GRID_DISPLAY_ID).visibleColumns("$c1"); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - GridRowModels<String> list = resultSet.getList(); + GridRowModels<DataHolder> list = resultSet.getList(); assertEquals(2, list.size()); assertEquals("0-a0 Error. Please contact 'null <null>', who defined this column.", render(list.get(0))); @@ -790,8 +793,8 @@ public final class CachedResultSetManagerTest extends AssertJUnit assertEquals(1, list.size()); assertEquals("0-a0 Error: (Error evaluating 'row.col('blabla')': " + "java.lang.IllegalArgumentException: " - + "java.lang.IllegalArgumentException: Unknown column ID: blabla).", render(list - .get(0))); + + "java.lang.IllegalArgumentException: Unknown column ID: blabla).", + render(list.get(0))); context.assertIsSatisfied(); } @@ -799,7 +802,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit @Test public void testSimpleCaching() { - final List<String> data = Arrays.asList("alpha", "beta"); + final List<DataHolder> data = createDataList(); context.checking(new Expectations() { { @@ -815,19 +818,34 @@ public final class CachedResultSetManagerTest extends AssertJUnit }); ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS).computeAndCache(); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - assertEquals("alpha", resultSet.getList().get(0).getOriginalObject()); - assertEquals("beta", resultSet.getList().get(1).getOriginalObject()); + assertEquals("alpha", getData(resultSet, 0)); + assertEquals("beta", getData(resultSet, 1)); builder.fetchFromCache(KEY).offset(1); resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - assertEquals("beta", resultSet.getList().get(0).getOriginalObject()); + assertEquals("beta", getData(resultSet, 0)); context.assertIsSatisfied(); } + private List<DataHolder> createDataList() + { + return createDataList("alpha", "beta"); + } + + private static List<DataHolder> createDataList(String... values) + { + List<DataHolder> list = new ArrayList<DataHolder>(); + for (String value : values) + { + list.add(new DataHolder(value)); + } + return list; + } + @Test public void testCachingSequenceSequenceComputeFetchClearComputeFetch() { @@ -838,7 +856,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit will(returnValue(KEY)); one(originalDataProvider).getOriginalData(); - will(returnValue(Arrays.asList("alpha", "beta"))); + will(returnValue(createDataList())); one(originalDataProvider).getHeaders(); will(returnValue(Arrays.asList())); @@ -846,15 +864,15 @@ public final class CachedResultSetManagerTest extends AssertJUnit }); ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS).computeAndCache(); - IResultSet<Long, String> resultSet = + IResultSet<Long, DataHolder> resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - assertEquals("alpha", resultSet.getList().get(0).getOriginalObject()); - assertEquals("beta", resultSet.getList().get(1).getOriginalObject()); + assertEquals("alpha", getData(resultSet, 0)); + assertEquals("beta", getData(resultSet, 1)); builder.fetchFromCache(KEY).offset(1); resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - assertEquals("beta", resultSet.getList().get(0).getOriginalObject()); + assertEquals("beta", getData(resultSet, 0)); context.checking(new Expectations() { @@ -863,7 +881,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit will(returnValue(KEY)); one(originalDataProvider).getOriginalData(); - will(returnValue(Arrays.asList("a", "b"))); + will(returnValue(createDataList("a", "b"))); one(originalDataProvider).getHeaders(); will(returnValue(Arrays.asList())); @@ -872,16 +890,42 @@ public final class CachedResultSetManagerTest extends AssertJUnit builder.clearComputeAndCache(KEY).sortDesc("col1"); resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - assertEquals("a", resultSet.getList().get(0).getOriginalObject()); + assertEquals("a", getData(resultSet, 0)); builder.fetchFromCacheAndRecompute(KEY).offset(0); resultSet = resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider); - assertEquals("b", resultSet.getList().get(0).getOriginalObject()); + assertEquals("b", getData(resultSet, 0)); context.assertIsSatisfied(); } + private static String getData(IResultSet<Long, DataHolder> resultSet, int index) + { + GridRowModels<DataHolder> list = resultSet.getList(); + return getData(list, index); + } + + private static String getData(GridRowModels<DataHolder> list, int index) + { + return list.get(index).getOriginalObject().getData(); + } + + private static class DataHolder + { + private final String data; + + public DataHolder(String data) + { + this.data = data; + } + + public String getData() + { + return data; + } + } + private void prepareDataAndCustomColumnDefinitions(final int size, final GridCustomColumn... columns) { @@ -892,10 +936,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit will(returnValue(KEY)); one(originalDataProvider).getOriginalData(); - String[] rows = new String[size]; + DataHolder[] rows = new DataHolder[size]; for (int i = 0; i < rows.length; i++) { - rows[i] = i + "-a" + i % 2; + rows[i] = new DataHolder(i + "-a" + i % 2); } will(returnValue(Arrays.asList(rows))); @@ -909,10 +953,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit }); } - private String render(GridRowModel<String> model) + private String render(GridRowModel<DataHolder> model) { StringBuilder builder = new StringBuilder(); - builder.append(model.getOriginalObject()); + builder.append(model.getOriginalObject().getData()); List<GridCustomColumnValue> calculatedColumnValues = model.getCalculatedColumnValues(); for (GridCustomColumnValue value : calculatedColumnValues) { @@ -931,7 +975,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit return column; } - private IResultSet<Long, String> getDataFirstTime() + private IResultSet<Long, DataHolder> getDataFirstTime() { ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS).displayID(GRID_DISPLAY_ID); @@ -949,19 +993,19 @@ public final class CachedResultSetManagerTest extends AssertJUnit } @SuppressWarnings("unchecked") - private static List<IColumnDefinition<String>> createExampleColumnDefinitions() + private static List<IColumnDefinition<DataHolder>> createExampleColumnDefinitions() { return Arrays.asList(DEF1, DEF2); } - private static IColumnDefinition<String> createColDef(final String identifier, + private static IColumnDefinition<DataHolder> createColDef(final String identifier, final String separator, final int tokenIndex) { - return new IColumnDefinition<String>() + return new IColumnDefinition<DataHolder>() { - public String getValue(GridRowModel<String> rowModel) + public String getValue(GridRowModel<DataHolder> rowModel) { - return rowModel.getOriginalObject().split(separator)[tokenIndex]; + return rowModel.getOriginalObject().getData().split(separator)[tokenIndex]; } public String getIdentifier() @@ -969,7 +1013,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit return identifier; } - public Comparable<?> tryGetComparableValue(GridRowModel<String> rowModel) + public Comparable<?> tryGetComparableValue(GridRowModel<DataHolder> rowModel) { return getValue(rowModel); }