### Question:
ExecutorServiceFlowStartScheduler implements AsyncFlowStartScheduler { public List<TimedFlowDefinition> addFlowDefinitionsWithStartTimer(Collection<FlowDefinition> definitions) { for (FlowDefinition definition : definitions) { for (FlowNodeDefinition<?> node : definition.getNodes()) { if (node.is(StartEvent.class) && node.as(StartEvent.class).getStartTimerDefinition().isPresent()) { timedDefinitions.add(new TimedFlowDefinition(definition, node.as(StartEvent.class) .getStartTimerDefinition().get(), node)); } } } return timedDefinitions; }  @Override synchronized void start(SchedulerOptions schedulerOptions, BrainslugContext brainslugContext, Collection<FlowDefinition> definitions); @Override synchronized void stop(); List<TimedFlowDefinition> addFlowDefinitionsWithStartTimer(Collection<FlowDefinition> definitions); ScheduledExecutorService getScheduledExecutorService(); ExecutorServiceFlowStartScheduler withScheduledExecutorService(ScheduledExecutorService scheduledExecutorService); SchedulerOptions getSchedulerOptions(); ExecutorServiceFlowStartScheduler withSchedulerOptions(SchedulerOptions schedulerOptions); List<TimedFlowDefinition> getTimedDefinitions();  }### Answer:
@Test public void shouldFindFlowDefinitionsWithStartTimer() { ExecutorServiceFlowStartScheduler flowStartScheduler = new ExecutorServiceFlowStartScheduler(); BrainslugContext context = getBrainslugContextWithFlows(); List<ExecutorServiceFlowStartScheduler.TimedFlowDefinition> flowDefinitionsWithStartTimer = flowStartScheduler.addFlowDefinitionsWithStartTimer(context.getDefinitions()); Assertions.assertThat(flowDefinitionsWithStartTimer) .hasSize(1); Assertions.assertThat(flowDefinitionsWithStartTimer .iterator() .next() .getFlowDefinition() .getId() .stringValue()).isEqualTo("withTimer"); }