### Question:
SchedulerImpl implements Scheduler { @Override public void scheduleCommand(Command command) { scheduleCommand(command, DEFAULT_SCHEDULING_TIMEOUT); }  @Override void scheduleCommand(Command command); @Override void scheduleCommand(Command command, int timeout); @Override void scheduleCommand(Command command, int timeout, DuplicateSheduleBehaviour behaviour); @Override void run(); @Override void stop();  }### Answer:
@Test public void testScheduleCommand() throws Exception { final WaitHelper.ResultHolder resultHolder = new WaitHelper.ResultHolder(); command.setCommandExecutionListener(new CommandExecutionListener() { @Override public void commandExecuted(Object result) { assertNotNull("Command result not null", result); assertTrue("Command result true", result instanceof Boolean && ((Boolean) result)); resultHolder.result = true; } }); scheduler.scheduleCommand(command); assertTrue("Event listener not called", WaitHelper.waitForResult(resultHolder)); }