@Test
public void testCreateListenersBuilder() {

    ListenersBuilder listenersBuilder = builder.createListenersBuilder();
    L1 l1 = new L1();
    L2 l2 = new L2();
    L3 l3 = new L3();
    listenersBuilder.addListener(l1);
    listenersBuilder.addListener(l2);
    listenersBuilder.addListener(l3);
    Map<Class<? extends Annotation>, List<StageListener>> listeners = listenersBuilder.getListeners();
    assertNotNull(listeners.get(AfterSourcesMapped.class));
    assertNotNull(listeners.get(AfterSourceRowsConverted.class));
    assertNotNull(listeners.get(AfterTargetsMatched.class));
    assertNotNull(listeners.get(AfterTargetsMapped.class));
    assertNotNull(listeners.get(AfterTargetsMerged.class));
    assertNotNull(listeners.get(AfterTargetsCommitted.class));
    assertEquals(1, listeners.get(AfterSourcesMapped.class).size());
    assertEquals(1, listeners.get(AfterSourceRowsConverted.class).size());
    assertEquals(1, listeners.get(AfterTargetsMatched.class).size());
    assertEquals(2, listeners.get(AfterTargetsMapped.class).size());
    assertEquals(1, listeners.get(AfterTargetsMerged.class).size());
    assertEquals(1, listeners.get(AfterTargetsCommitted.class).size());
}