@Test public void testFirstDayOfWeekOk() throws Exception { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(DAY_OF_WEEK, true) .firstDay(DayOfWeek.MONDAY); }
@Test public void testFirstDayOfMonthOk() throws Exception { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(MONTH, true) .firstMonth(Month.APRIL); }
@Test public void testFirstDayOfWeekOk() throws Exception { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(DAY_OF_WEEK, true) .firstDay(DayOfWeek.MONDAY); }
@Test public void testFirstDayOfMonthOk() throws Exception { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(MONTH, true) .firstMonth(Month.APRIL); }
@Test public void testFixedIntervalsSupported() throws Exception { for (DateIntervalType type : DateIntervalType.values()) { try { DataSetLookupFactory.newDataSetLookupBuilder().group(COLUMN_DATE).fixed(type, true); if (!DateIntervalType.FIXED_INTERVALS_SUPPORTED.contains(type)) { fail("Missing exception on a not supported fixed interval: " + type); } } catch (Exception e) { if (DateIntervalType.FIXED_INTERVALS_SUPPORTED.contains(type)) { fail("Exception on a supported fixed interval: " + type); } } } }
@Test public void testFixedIntervalsSupported() throws Exception { for (DateIntervalType type : DateIntervalType.values()) { try { DataSetLookupFactory.newDataSetLookupBuilder().group(COLUMN_DATE).fixed(type, true); if (!DateIntervalType.FIXED_INTERVALS_SUPPORTED.contains(type)) { fail("Missing exception on a not supported fixed interval: " + type); } } catch (Exception e) { if (DateIntervalType.FIXED_INTERVALS_SUPPORTED.contains(type)) { fail("Exception on a supported fixed interval: " + type); } } } }
@Test public void testFirstDayOfMonthNok() throws Exception { try { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(QUARTER, true) .firstMonth(Month.APRIL); fail("firstDayOfWeek required a DAY_OF_WEEK fixed domain."); } catch (Exception e) { // Expected. } }
@Test public void testFirstDayOfWeekNok() throws Exception { try { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(QUARTER, true) .firstDay(DayOfWeek.MONDAY); fail("firstDayOfWeek required a DAY_OF_WEEK fixed domain."); } catch (Exception e) { // Expected. } }
@Test public void testFirstDayOfMonthNok() throws Exception { try { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(QUARTER, true) .firstMonth(Month.APRIL); fail("firstDayOfWeek required a DAY_OF_WEEK fixed domain."); } catch (Exception e) { // Expected. } }
@Test public void testFirstDayOfWeekNok() throws Exception { try { DataSetLookupFactory.newDataSetLookupBuilder() .group(COLUMN_DATE) .fixed(QUARTER, true) .firstDay(DayOfWeek.MONDAY); fail("firstDayOfWeek required a DAY_OF_WEEK fixed domain."); } catch (Exception e) { // Expected. } }
@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 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 testWrongColumnType() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DEPARTMENT) .column(DEPARTMENT) .column(EMPLOYEE) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_TYPE); lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DATE) .column(DATE) .column(EMPLOYEE) .buildLookup(); error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_TYPE); }
@Test public void testWrongColumnType() { DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DEPARTMENT) .column(DEPARTMENT) .column(EMPLOYEE) .buildLookup(); ValidationError error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_TYPE); lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DATE) .column(DATE) .column(EMPLOYEE) .buildLookup(); error = TWO_COLUMNS_GROUPED.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_COLUMN_TYPE); }
@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 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 testUniqueColumns() { DataSetLookupConstraints UNIQUE_COLUMNS = new DataSetLookupConstraints() .setUniqueColumnIds(true); DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DEPARTMENT) .column(DEPARTMENT, "dept") .column(AMOUNT, AggregateFunctionType.AVERAGE, "amount") .column(AMOUNT, AggregateFunctionType.SUM, "amount") .buildLookup(); ValidationError error = UNIQUE_COLUMNS.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_DUPLICATED_COLUMN_ID); UNIQUE_COLUMNS.setUniqueColumnIds(false); error = UNIQUE_COLUMNS.check(lookup, METADATA); assertNull(error); } }
@Test public void testUniqueColumns() { DataSetLookupConstraints UNIQUE_COLUMNS = new DataSetLookupConstraints() .setUniqueColumnIds(true); DataSetLookup lookup = DataSetLookupFactory.newDataSetLookupBuilder() .group(DEPARTMENT) .column(DEPARTMENT, "dept") .column(AMOUNT, AggregateFunctionType.AVERAGE, "amount") .column(AMOUNT, AggregateFunctionType.SUM, "amount") .buildLookup(); ValidationError error = UNIQUE_COLUMNS.check(lookup, METADATA); assertNotNull(error); assertEquals(error.getCode(), DataSetLookupConstraints.ERROR_DUPLICATED_COLUMN_ID); UNIQUE_COLUMNS.setUniqueColumnIds(false); error = UNIQUE_COLUMNS.check(lookup, METADATA); assertNull(error); } }