Async { public static <T> Future<T> run(Callable<T> callable) { return executor.submit(callable); }  static Future<T> run(Callable<T> callable); static ScheduledExecutorService defaultExecutorService();  }
@Test public void testRun() throws Exception { assertThat(Async.run(new Callable<String>() { @Override public String call() throws Exception { return ""; } }).get(), is("")); }
@Test(expected = ExecutionException.class) public void testRunException() throws Exception { Async.run(new Callable<String>() { @Override public String call() throws Exception { throw new RuntimeException(); } }).get(); }