@Override
  public <T> void schedule(SchedulableInstance<T> schedulableInstance) {
    this.delegate.schedule(schedulableInstance);
  }
@Test
  public void scheduler_should_execute_task_when_exactly_due() {
    LOG.info("scheduler_should_execute_task_when_exactly_due()");
    OneTimeTask<Void> oneTimeTask = TestTasks.oneTime("OneTime", Void.class, handler);
    ManualScheduler scheduler = schedulerFor(oneTimeTask);

    try {
      Instant executionTime = clock.now().plus(ofMinutes(1));
      scheduler.schedule(oneTimeTask.instance("1"), executionTime);

      scheduler.runAnyDueExecutions();
      assertThat(handler.timesExecuted.get(), is(0));

      clock.set(executionTime);
      scheduler.runAnyDueExecutions();
      assertThat(handler.timesExecuted.get(), is(1));
    } catch (RuntimeException | Error e) {
      LOG.info("scheduler_should_execute_task_when_exactly_due() failed");
      scheduler
          .getScheduledExecutions()
          .forEach(
              it -> {
                LOG.info("Execution in database scheduled to: " + it.getExecutionTime());
              });
      throw e;
    }
    LOG.info("scheduler_should_execute_task_when_exactly_due() end");
  }