### Question:
MoreBodySubscribers { public static <T> BodySubscriber<T> ofObject( TypeRef<T> type, @Nullable MediaType mediaType) { return requireDecoder(type, mediaType).toObject(type, mediaType); } private  MoreBodySubscribers(); static BodySubscriber<T> fromAsyncSubscriber(
          S downstream, Function<? super S, ? extends CompletionStage<T>> asyncFinisher); static BodySubscriber<T> withReadTimeout(BodySubscriber<T> base, Duration timeout); static BodySubscriber<T> withReadTimeout(
      BodySubscriber<T> base, Duration timeout, ScheduledExecutorService scheduler); static BodySubscriber<ReadableByteChannel> ofByteChannel(); static BodySubscriber<Reader> ofReader(Charset charset); static BodySubscriber<T> ofObject(
      TypeRef<T> type, @Nullable MediaType mediaType); static BodySubscriber<Supplier<T>> ofDeferredObject(
      TypeRef<T> type, @Nullable MediaType mediaType);  }### Answer:
@Test void ofObject_stringBody() { var sample = "sample string"; var publisher = asciiPublisherOf(sample, sample.length(), 1); var subscriber = ofObject(TypeRef.from(String.class), null); publisher.subscribe(subscriber); assertEquals(sample, getBody(subscriber)); }