static <RequestT, ResponseT> Call<RequestT, ResponseT> of(
      Caller<RequestT, ResponseT> caller, Coder<ResponseT> responseTCoder) {
    caller = SerializableUtils.ensureSerializable(caller);
    return new Call<>(
        Configuration.<RequestT, ResponseT>builder()
            .setCaller(caller)
            .setResponseCoder(responseTCoder)
            .build());
  }
@Test
  public void givenValidCaller_emitValidResponse() {
    Result<Response> result =
        pipeline
            .apply(Create.of(new Request("a")))
            .apply(Call.of(new ValidCaller(), NON_DETERMINISTIC_RESPONSE_CODER));

    PAssert.thatSingleton(result.getFailures().apply(Count.globally())).isEqualTo(0L);
    PAssert.that(result.getResponses()).containsInAnyOrder(new Response("a"));

    pipeline.run();
  }