public static boolean isValidFormat(String format) { Preconditions.checkNotNull(format); String[] formatTokens = format.split(COLON_SEPARATOR, MAX_FORMAT_TOKENS); Preconditions.checkArgument(formatTokens.length == MIN_FORMAT_TOKENS || formatTokens.length == MAX_FORMAT_TOKENS, FORMAT_TOKENS_ERROR_STR); Preconditions.checkArgument(formatTokens[FORMAT_SIZE_POSITION].matches(NUMBER_REGEX), FORMAT_PATTERN_ERROR_STR); Preconditions.checkArgument(DateTimeFormatUnitSpec.isValidUnitSpec(formatTokens[FORMAT_UNIT_POSITION])); if (formatTokens.length == MIN_FORMAT_TOKENS) { Preconditions.checkArgument(formatTokens[FORMAT_TIMEFORMAT_POSITION].equals(TimeFormat.EPOCH.toString()), TIME_FORMAT_ERROR_STR); } else { Preconditions .checkArgument(formatTokens[FORMAT_TIMEFORMAT_POSITION].equals(TimeFormat.SIMPLE_DATE_FORMAT.toString()), TIME_FORMAT_ERROR_STR); } return true; }
@Test public void testAppendWithPrefixNoSequenceId() throws Exception { ColumnStatistics columnStatisticsClass = Mockito.mock(ColumnStatistics.class); when(columnStatisticsClass.getMaxValue()).thenReturn(3L); when(columnStatisticsClass.getMinValue()).thenReturn(1L); NormalizedDateSegmentNameGenerator normalizedDataSegmentNameGenerator = new NormalizedDateSegmentNameGenerator(TABLE_NAME, SEQUENCE_ID, TIME_COLUMN_TYPE, TABLE_PUSH_FREQUENCY, APPEND_PUSH_TYPE, "prefix", "true", DateTimeFieldSpec.TimeFormat.EPOCH.toString()); Assert.assertEquals(normalizedDataSegmentNameGenerator.generateSegmentName(columnStatisticsClass), "prefix_1970-01-02_1970-01-04"); }
@Test public void testUntrimmedPrefix() throws Exception { ColumnStatistics columnStatisticsClass = Mockito.mock(ColumnStatistics.class); when(columnStatisticsClass.getMaxValue()).thenReturn(3L); when(columnStatisticsClass.getMinValue()).thenReturn(1L); NormalizedDateSegmentNameGenerator normalizedDataSegmentNameGenerator = new NormalizedDateSegmentNameGenerator(TABLE_NAME, SEQUENCE_ID, TIME_COLUMN_TYPE, TABLE_PUSH_FREQUENCY, APPEND_PUSH_TYPE, "mirrorShareEvents_daily ", null, DateTimeFieldSpec.TimeFormat.EPOCH.toString()); Assert.assertEquals(normalizedDataSegmentNameGenerator.generateSegmentName(columnStatisticsClass), "mirrorShareEvents_daily_1970-01-02_1970-01-04_1"); }
@Test public void testAppendWithPrefix() throws Exception { ColumnStatistics columnStatisticsClass = Mockito.mock(ColumnStatistics.class); when(columnStatisticsClass.getMaxValue()).thenReturn(3L); when(columnStatisticsClass.getMinValue()).thenReturn(1L); NormalizedDateSegmentNameGenerator normalizedDataSegmentNameGenerator = new NormalizedDateSegmentNameGenerator(TABLE_NAME, SEQUENCE_ID, TIME_COLUMN_TYPE, TABLE_PUSH_FREQUENCY, APPEND_PUSH_TYPE, PREFIX, null, DateTimeFieldSpec.TimeFormat.EPOCH.toString()); Assert.assertEquals(normalizedDataSegmentNameGenerator.generateSegmentName(columnStatisticsClass), "myTable_daily_1970-01-02_1970-01-04_1"); }
@Test public void testAppend() throws Exception { ColumnStatistics columnStatisticsClass = Mockito.mock(ColumnStatistics.class); when(columnStatisticsClass.getMaxValue()).thenReturn(3L); when(columnStatisticsClass.getMinValue()).thenReturn(1L); NormalizedDateSegmentNameGenerator normalizedDataSegmentNameGenerator = new NormalizedDateSegmentNameGenerator(TABLE_NAME, SEQUENCE_ID, TIME_COLUMN_TYPE, TABLE_PUSH_FREQUENCY, APPEND_PUSH_TYPE, null, null, DateTimeFieldSpec.TimeFormat.EPOCH.toString()); Assert.assertEquals(normalizedDataSegmentNameGenerator.generateSegmentName(columnStatisticsClass), "myTable_1970-01-02_1970-01-04_1"); }
@Test public void testMirrorShare() throws Exception { ColumnStatistics columnStatisticsClass = Mockito.mock(ColumnStatistics.class); when(columnStatisticsClass.getMaxValue()).thenReturn(3L); when(columnStatisticsClass.getMinValue()).thenReturn(1L); NormalizedDateSegmentNameGenerator normalizedDataSegmentNameGenerator = new NormalizedDateSegmentNameGenerator(TABLE_NAME, SEQUENCE_ID, TIME_COLUMN_TYPE, TABLE_PUSH_FREQUENCY, APPEND_PUSH_TYPE, "mirrorShareEvents_daily", null, DateTimeFieldSpec.TimeFormat.EPOCH.toString()); Assert.assertEquals(normalizedDataSegmentNameGenerator.generateSegmentName(columnStatisticsClass), "mirrorShareEvents_daily_1970-01-02_1970-01-04_1"); }