@Test
public void testRetentionConfig() throws Exception {
FileWriterRetentionConfig cfg;
cfg = FileWriterRetentionConfig.newFileCountBasedConfig(2);
checkFileWriterConfig(cfg, 2, 0, 0, 0);
expectIAE(() -> FileWriterRetentionConfig.newFileCountBasedConfig(0));
cfg = FileWriterRetentionConfig.newAggregateFileSizeBasedConfig(3);
checkFileWriterConfig(cfg, 0, 3, 0, 0);
expectIAE(() -> FileWriterRetentionConfig.newAggregateFileSizeBasedConfig(0));
cfg = FileWriterRetentionConfig.newAgeBasedConfig(10,11);
checkFileWriterConfig(cfg, 0, 0, 10, 11);
expectIAE(() -> FileWriterRetentionConfig.newAgeBasedConfig(0,1));
expectIAE(() -> FileWriterRetentionConfig.newAgeBasedConfig(1,0));
cfg = FileWriterRetentionConfig.newConfig(1, 2, 3, 0);
checkFileWriterConfig(cfg, 1, 2, 3, 0);
expectIAE(() -> FileWriterRetentionConfig.newConfig(0, 0, 0, 0));
expectIAE(() -> FileWriterRetentionConfig.newConfig(0, 0, 1, 0));
expectIAE(() -> FileWriterRetentionConfig.newConfig(0, 0, 0, 1));
expectIAE(() -> FileWriterRetentionConfig.newConfig(-1, 0, 0, 0));
expectIAE(() -> FileWriterRetentionConfig.newConfig(0, -1, 0, 0));
expectIAE(() -> FileWriterRetentionConfig.newConfig(0, 0, -1, 0));
expectIAE(() -> FileWriterRetentionConfig.newConfig(0, 0, 0, -1));
}