public DataSet lookupGroupByMonthDynamic(boolean emptyIntervals) throws Exception { return dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(EXPENSE_REPORTS) .group(COLUMN_DATE).dynamic(99, MONTH, emptyIntervals) .column(COLUMN_DATE, "Period") .column(COLUMN_EMPLOYEE, "Employee") .column(COUNT, "Occurrences") .column(COLUMN_AMOUNT, SUM, "totalAmount") .buildLookup()); }
public DataSet lookupGroupByMonthDynamic(boolean emptyIntervals) throws Exception { return dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(EXPENSE_REPORTS) .group(COLUMN_DATE).dynamic(99, MONTH, emptyIntervals) .column(COLUMN_DATE, "Period") .column(COLUMN_EMPLOYEE, "Employee") .column(COUNT, "Occurrences") .column(COLUMN_AMOUNT, SUM, "totalAmount") .buildLookup()); }
@Test public void testGroupNotAllowed() { presenter.init(DATA_MULTIPLE_NO_GROUP, DataSetLookupFactory.newDataSetLookupBuilder() .dataset(POPULATION_UUID) .column("year") .column("population") .buildLookup()); verify(view, never()).setGroupEnabled(true); verify(view, never()).enableGroupColumnSelectorHint(); verify(event, never()).fire(any(DataSetLookupChangedEvent.class)); }
@Test public void testGroupNotAllowed() { presenter.init(DATA_MULTIPLE_NO_GROUP, DataSetLookupFactory.newDataSetLookupBuilder() .dataset(POPULATION_UUID) .column("year") .column("population") .buildLookup()); verify(view, never()).setGroupEnabled(true); verify(view, never()).enableGroupColumnSelectorHint(); verify(event, never()).fire(any(DataSetLookupChangedEvent.class)); }
@Test(expected = RuntimeException.class) public void testAggregationFunctionByNonExistingColumn() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetFactory.newDataSetLookupBuilder() .dataset(EL_DATASET_UUID) .group(ExpenseReportsData.COLUMN_DEPARTMENT) .column(ExpenseReportsData.COLUMN_DEPARTMENT, "Department") .column(COUNT, "Occurrences") .column("mycolumn", MIN, "min") .buildLookup()); }
@Test public void testGroupAllowed() { presenter.init(DATA_MULTIPLE, DataSetLookupFactory.newDataSetLookupBuilder() .dataset(POPULATION_UUID) .column("year") .column("population") .buildLookup()); verify(view).setGroupEnabled(true); verify(view).enableGroupColumnSelectorHint(); verify(view).setAddColumnOptionEnabled(true); verify(event, never()).fire(any(DataSetLookupChangedEvent.class)); }
@Test public void testGroupAllowed() { presenter.init(DATA_MULTIPLE, DataSetLookupFactory.newDataSetLookupBuilder() .dataset(POPULATION_UUID) .column("year") .column("population") .buildLookup()); verify(view).setGroupEnabled(true); verify(view).enableGroupColumnSelectorHint(); verify(view).setAddColumnOptionEnabled(true); verify(event, never()).fire(any(DataSetLookupChangedEvent.class)); }
@Test public void testAutoCreateRequiredGroup() { presenter.init(DATA_2D_FIXED, DataSetLookupFactory.newDataSetLookupBuilder() .dataset(POPULATION_UUID) .filter(greaterThan(100)) .column("country") .column("population", AggregateFunctionType.SUM) .buildLookup()); assertEquals(presenter.getFirstGroupColumnId(), "continent"); verify(event).fire(any(DataSetLookupChangedEvent.class)); }
@Test public void testColumnExcess() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DATE).fixed(DateIntervalType.MONTH, true) .column(DATE) .column(AMOUNT, AggregateFunctionType.SUM) .column(AMOUNT, AggregateFunctionType.AVERAGE) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_NUMBER); }
@Test public void testDateMinMaxFunctions() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(EXPENSE_REPORTS) .column(COLUMN_DATE, AggregateFunctionType.MIN) .column(COLUMN_DATE, AggregateFunctionType.MAX) .buildLookup()); assertDataSetValues(result, dataSetFormatter, new String[][]{ {"01/04/12 12:00", "12/11/15 12:00"} }, 0); }
@Test public void testNumberMinMaxFunctions() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(EXPENSE_REPORTS) .column(COLUMN_AMOUNT, AggregateFunctionType.MIN) .column(COLUMN_AMOUNT, AggregateFunctionType.MAX) .buildLookup()); assertDataSetValues(result, dataSetFormatter, new String[][]{ {"1.10", "1,100.10"} }, 0); }
@Test public void testDateMinMaxFunctions() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(EXPENSE_REPORTS) .column(COLUMN_DATE, AggregateFunctionType.MIN) .column(COLUMN_DATE, AggregateFunctionType.MAX) .buildLookup()); assertDataSetValues(result, dataSetFormatter, new String[][]{ {"01/04/12 12:00", "12/11/15 12:00"} }, 0); }
@Test public void testColumnExcess() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DATE).fixed(DateIntervalType.MONTH, true) .column(DATE) .column(AMOUNT, AggregateFunctionType.SUM) .column(AMOUNT, AggregateFunctionType.AVERAGE) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_NUMBER); }
@Test public void testValidationOk() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DATE).fixed(DateIntervalType.MONTH, true) .column(DATE) .column(AMOUNT, AggregateFunctionType.SUM) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNull(error); }
@Test public void testValidationOk() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DATE).fixed(DateIntervalType.MONTH, true) .column(DATE) .column(AMOUNT, AggregateFunctionType.SUM) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNull(error); }
@Test public void testColumnMissing() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DEPARTMENT) .column(AMOUNT, AggregateFunctionType.SUM) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_NUMBER); }
@Test public void testColumnMissing() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DEPARTMENT) .column(AMOUNT, AggregateFunctionType.SUM) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_NUMBER); }
@Test public void testMissingGroup() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .column(DATE) .column(AMOUNT, AggregateFunctionType.SUM) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_GROUP_REQUIRED); }
@Test public void testMissingGroup() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .column(DATE) .column(AMOUNT, AggregateFunctionType.SUM) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_GROUP_REQUIRED); }
@Test public void testAggregationAndFilterByNonAnalyzedField() throws Exception { DataSet result = dataSetManager.lookupDataSet( DataSetFactory.newDataSetLookupBuilder() .dataset(EL_DATASET_UUID) .column(COUNT, "#items") .filter(ExpenseReportsData.COLUMN_DEPARTMENT, equalsTo(EL_EXAMPLE_DEPT_ENGINEERING)) .sort(ExpenseReportsData.COLUMN_ID, SortOrder.ASCENDING) .buildLookup()); assertThat(result.getRowCount()).isEqualTo(1); assertThat(result.getValueAt(0, 0)).isEqualTo(19d); }