anchor.diff:      public void processor() {
           final Processor processor = COMPONENT_FACTORY.createProcessor(Transform.class, null);
           final SimpleComponentRule.Outputs outputs = COMPONENT_FACTORY.collect(processor,
  -                new JoinInputFactory(new HashMap<String, Iterator<?>>() {{
  -                    put("__default__", asList(new Transform.Record("a"), new Transform.Record("bb")).iterator());
  -                    put("second", asList(new Transform.Record("1"), new Transform.Record("2")).iterator());
  -                }}));
  +                        new JoinInputFactory().withInput("__default__", asList(new Transform.Record("a"), new Transform.Record("bb")))
  +                                              .withInput("second", asList(new Transform.Record("1"), new Transform.Record("2")))
  +                );
           assertEquals(2, outputs.size());
           assertEquals(asList(2, 3), outputs.get(Integer.class, "size"));
           assertEquals(asList("a1", "bb2"), outputs.get(String.class, "value"));
  
positive.code: of the input factory:
  
  1. `MainInputFactory` for processors using only the default input.
  2. `JoinInputfactory` for processors using multiple inputs. This one takes a map of iterators. The key is the branch name and the value the data used by the branch.
  
  TIP: you can also implement your own input representation if needed implementing `org.talend.sdk.component.junit.ControllableInputFactory`.
  
  
negative.code: 
  ==== Testing a Processor
  
  As for the mapper a processor is testable unitary. The case is a bit more complex since you can have multiple
  inputs and outputs:
  
  [source,java]
  