@Before public void setup() { this.childEmitters = ImmutableList.of( EasyMock.createMock(Emitter.class), EasyMock.createMock(Emitter.class) ); this.composingEmitter = new ComposingEmitter(childEmitters); }
@Test public void testClose() throws IOException { for (Emitter emitter : childEmitters) { emitter.close(); EasyMock.replay(emitter); } composingEmitter.close(); }
@Test public void testEmit() { Event e = EasyMock.createMock(Event.class); for (Emitter emitter : childEmitters) { emitter.emit(e); EasyMock.replay(emitter); } composingEmitter.emit(e); }
@Test public void testStart() { for (Emitter emitter : childEmitters) { emitter.start(); EasyMock.replay(emitter); } composingEmitter.start(); }
@Test public void testFlush() throws IOException { for (Emitter emitter : childEmitters) { emitter.flush(); EasyMock.replay(emitter); } composingEmitter.flush(); }
@Provides @ManageLifecycle @Named("composing") public Emitter getEmitter(ComposingEmitterConfig config, final Injector injector) { log.info("Creating Composing Emitter with %s", config.getEmitters()); List<Emitter> emitters = Lists.transform( config.getEmitters(), new Function<String, Emitter>() { @Override public Emitter apply(String s) { return injector.getInstance(Key.get(Emitter.class, Names.named(s))); } } ); return new ComposingEmitter(emitters); } }
@Provides @ManageLifecycle @Named("composing") public Emitter getEmitter(ComposingEmitterConfig config, final Injector injector) { log.info("Creating Composing Emitter with %s", config.getEmitters()); List<Emitter> emitters = Lists.transform( config.getEmitters(), new Function<String, Emitter>() { @Override public Emitter apply(String s) { return injector.getInstance(Key.get(Emitter.class, Names.named(s))); } } ); return new ComposingEmitter(emitters); } }