@Override
  public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
    ScheduledTask<Void> task = new ScheduledTask<Void>(command);
    mQueue.add(TimeUnit.MILLISECONDS.convert(delay, unit), task);
    return task;
  }
@Test
  public void schedule() throws Exception {
    CountTask task = new CountTask();
    ControllableScheduler scheduler = new ControllableScheduler();
    scheduler.schedule(task, 5, TimeUnit.HOURS);
    assertTrue(scheduler.schedulerIsIdle());
    scheduler.jumpAndExecute(5, TimeUnit.HOURS);
    assertEquals(1, task.runTimes());
  }