@Test
@SuppressWarnings("unchecked")
public void testPipeline() {

  Step step1 = stepFactory.create(new OperationMetaData(AdditionOperation.DESCRIPTION, () ->
      new AdditionOperation(isf, osf)));
  Step step2 = stepFactory.create(new OperationMetaData(AdditionOperation.DESCRIPTION, () ->
      new AdditionOperation(isf, osf)));
  final InputSocket<Double> a1 = step1.getInputSockets().get(0);
  final InputSocket<Double> b1 = step1.getInputSockets().get(1);
  final OutputSocket<Double> sum1 = step1.getOutputSockets().get(0);
  final InputSocket<Double> a2 = step2.getInputSockets().get(0);
  final InputSocket<Double> b2 = step2.getInputSockets().get(1);
  final OutputSocket<Double> sum2 = step2.getOutputSockets().get(0);
  // The result of this is the following equalities:
  //      sum1 = a1+b1
  //      sum2 = a2+b2
  //      a2 = sum1
  // So, sum2 will be equal to a1+b1+b2
  pipeline.addStep(step1);
  pipeline.addStep(step2);
  Connection connection = new Connection(eventBus, pipeline, sum1, a2);
  eventBus.register(connection);
  eventBus.post(new ConnectionAddedEvent(connection));
  ManualPipelineRunner runner = new ManualPipelineRunner(eventBus, pipeline);
  a1.setValue(123.0);
  b1.setValue(456.0);
  b2.setValue(789.0);
  runner.runPipeline();
  assertEquals((Double) 1368.0, sum2.getValue().get());
}