@Test
public void testFlushConfig() throws Exception {
FileWriterFlushConfig<String> cfg;
String trueTuple = "true";
String falseTuple = "false";
Predicate<String> p = tuple -> tuple.equals("true");
cfg = FileWriterFlushConfig.newImplicitConfig();
checkFileWriterConfig(cfg, 0, 0, null, trueTuple, falseTuple);
cfg = FileWriterFlushConfig.newCountBasedConfig(3);
checkFileWriterConfig(cfg, 3, 0, null, trueTuple, falseTuple);
expectIAE(() -> FileWriterFlushConfig.newCountBasedConfig(0));
cfg = FileWriterFlushConfig.newTimeBasedConfig(10);
checkFileWriterConfig(cfg, 0, 10, null, trueTuple, falseTuple);
expectIAE(() -> FileWriterFlushConfig.newTimeBasedConfig(0));
cfg = FileWriterFlushConfig.newPredicateBasedConfig(p);
checkFileWriterConfig(cfg, 0, 0, p, trueTuple, falseTuple);
expectIAE(() -> FileWriterFlushConfig.newPredicateBasedConfig(null));
cfg = FileWriterFlushConfig.newConfig(1, 2, p);
checkFileWriterConfig(cfg, 1, 2, p, trueTuple, falseTuple);
cfg = FileWriterFlushConfig.newConfig(0, 0, null);
checkFileWriterConfig(cfg, 0, 0, null, trueTuple, falseTuple);
expectIAE(() -> FileWriterFlushConfig.newConfig(-1, 0, null));
expectIAE(() -> FileWriterFlushConfig.newConfig(0, -1, null));
}