### Question:
GlideFutures { public static <T> ListenableFuture<T> submit(final RequestBuilder<T> requestBuilder) { return transformFromTargetAndResult(submitInternal(requestBuilder)); } private  GlideFutures(); static ListenableFuture<Void> submitAndExecute(
      final RequestManager requestManager,
      RequestBuilder<T> requestBuilder,
      final ResourceConsumer<T> action,
      Executor executor); static ListenableFuture<T> submit(final RequestBuilder<T> requestBuilder);  }### Answer:
@Test public void testBaseLoad() throws Exception { ColorDrawable expected = new ColorDrawable(Color.RED); ListenableFuture<Drawable> future = GlideFutures.submit(Glide.with(app).load(expected)); assertThat(((ColorDrawable) Futures.getDone(future)).getColor()).isEqualTo(expected.getColor()); }
@Test public void testErrorLoad() { final ListenableFuture<Bitmap> future = GlideFutures.submit(Glide.with(app).asBitmap().load(app)); assertThrows( ExecutionException.class, new ThrowingRunnable() { @Override public void run() throws Throwable { Futures.getDone(future); } }); }