### Question:
HttpResponseStep extends Step { @Override public NextAction apply(Packet packet) { return Optional.ofNullable(getResponse(packet)).map(r -> doApply(packet, r)).orElse(doNext(packet)); } HttpResponseStep(Step next); @Override NextAction apply(Packet packet); abstract NextAction onSuccess(Packet packet, HttpResponse<String> response); abstract NextAction onFailure(Packet packet, HttpResponse<String> response);  }### Answer:
@Test public void whenNoResponseProvided_skipProcessing() { NextAction nextAction = responseStep.apply(new Packet()); assertThat(responseStep.getSuccessResponse(), nullValue()); assertThat(responseStep.getFailureResponse(), nullValue()); assertThat(nextAction.getNext(), sameInstance(terminalStep)); }