Step { Step(Operation operation, OperationDescription description, List<InputSocket> inputSockets, List<OutputSocket> outputSockets, ExceptionWitness.Factory exceptionWitnessFactory, Timer.Factory timerFactory) { this.operation = operation; this.description = description; this.inputSockets = inputSockets; this.outputSockets = outputSockets; this.witness = exceptionWitnessFactory.create(this); this.timer = timerFactory.create(this); } Step(Operation operation,
       OperationDescription description,
       List<InputSocket> inputSockets,
       List<OutputSocket> outputSockets,
       ExceptionWitness.Factory exceptionWitnessFactory,
       Timer.Factory timerFactory); OperationDescription getOperationDescription(); ImmutableList<InputSocket> getInputSockets(); ImmutableList<OutputSocket> getOutputSockets(); final void setRemoved(); @Override String toString();  }
@Test public void testStep() { Step step = new Step.Factory((origin) -> new MockExceptionWitness(eventBus, origin), MockTimer.MOCK_FACTORY) .create(additionMeta); Socket<Double> a = (Socket<Double>) step.getInputSockets().get(0); Socket<Double> b = (Socket<Double>) step.getInputSockets().get(1); Socket<Double> c = (Socket<Double>) step.getOutputSockets().get(0); a.setValue(1234.0); b.setValue(5678.0); step.runPerformIfPossible(); assertEquals("Step did not perform correctly", (Double) (1234.0 + 5678.0), c.getValue().get()); eventBus.unregister(step); }