package org.raidenjpa.query.executor; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import org.junit.Test; import org.raidenjpa.entities.A; public class PoolerRowsTest { @Test public void testAggregateOneColumn() { List<QueryResultRow> rows; Collection<QueryResultRow> aggregatedRows; List<List<String>> paths = new ArrayList<List<String>>(); paths.add(Arrays.asList("a", "stringValue")); rows = new ArrayList<QueryResultRow>(); rows.add(new QueryResultRow("a", new A("a1"))); rows.add(new QueryResultRow("a", new A("a1"))); aggregatedRows = new PoolerRows().group(rows, paths); assertEquals(1, aggregatedRows.size()); assertEquals(2, aggregatedRows.iterator().next().getGroupedRows().size()); rows = new ArrayList<QueryResultRow>(); rows.add(new QueryResultRow("a", new A("a1"))); rows.add(new QueryResultRow("a", new A("a1"))); rows.add(new QueryResultRow("a", new A("a2"))); aggregatedRows = new PoolerRows().group(rows, paths); assertEquals(2, aggregatedRows.size()); } @Test public void testAggregateMoreThanOneColumn() { List<QueryResultRow> rows; List<List<String>> paths = new ArrayList<List<String>>(); Collection<QueryResultRow> aggregatedRows; rows = new ArrayList<QueryResultRow>(); rows.add(new QueryResultRow("a", new A("a1", 1))); rows.add(new QueryResultRow("a", new A("a1", 1))); rows.add(new QueryResultRow("a", new A("a1", 2))); rows.add(new QueryResultRow("a", new A("a2", 1))); paths.add(Arrays.asList("a", "stringValue")); paths.add(Arrays.asList("a", "intValue")); aggregatedRows = new PoolerRows().group(rows, paths); assertEquals(3, aggregatedRows.size()); } }