### Question:
DiskFailoverDeco extends
    EventSinkDecorator<S> { public static SinkDecoBuilder builder() { return new SinkDecoBuilder() { @Override public EventSinkDecorator<EventSink> build(Context context, String... argv) { Preconditions.checkArgument(argv.length <= 1, "usage: diskFailover[(maxMillis[, checkmillis])]"); FlumeConfiguration conf = FlumeConfiguration.get(); long delayMillis = conf.getAgentLogMaxAge(); if (argv.length >= 1) { delayMillis = Long.parseLong(argv[0]); } long checkmillis = 250; if (argv.length >= 2) { checkmillis = Long.parseLong(argv[1]); } FlumeNode node = FlumeNode.getInstance(); String dfonode = context.getValue(LogicalNodeContext.C_LOGICAL); DiskFailoverManager dfoman = node.getAddDFOManager(dfonode); return new DiskFailoverDeco<EventSink>(null, dfoman, new TimeTrigger( new ProcessTagger(), delayMillis), checkmillis); } }; } DiskFailoverDeco(S s, final DiskFailoverManager dfoman, RollTrigger t,
      long checkmillis); void setSink(S sink); @Override synchronized void append(Event e); @Override synchronized void close(); @Override synchronized void open(); static SinkDecoBuilder builder(); @Override String getName(); @Override ReportEvent getReport();  }### Answer:
@Test public void testBuilder() { DiskFailoverDeco.builder().build(new Context()); DiskFailoverDeco.builder().build(new Context(), "1000"); }
@Test(expected = IllegalArgumentException.class) public void testBuilderFail1() { DiskFailoverDeco.builder().build(new Context(), "12341", "foo"); }
@Test(expected = IllegalArgumentException.class) public void testBuilderFail2() { DiskFailoverDeco.builder().build(new Context(), "foo"); }