@Test
public void fetchFlowHistoryWithStartTime() throws Exception {

  final ExecutableFlow flow1 = createExecution(
      TimeUtils.convertDateTimeToUTCMillis("2018-09-01 10:00:00"), Status.PREPARING);
  final ExecutableFlow flow2 = createExecution(
      TimeUtils.convertDateTimeToUTCMillis("2018-09-01 09:00:00"), Status.PREPARING);
  final ExecutableFlow flow3 = createExecution(
      TimeUtils.convertDateTimeToUTCMillis("2018-09-01 09:00:00"), Status.PREPARING);
  final ExecutableFlow flow4 = createExecution(
      TimeUtils.convertDateTimeToUTCMillis("2018-09-01 08:00:00"), Status.PREPARING);
  final List<ExecutableFlow> expectedFlows = new ArrayList<>();
  expectedFlows.add(flow1);
  expectedFlows.add(flow2);
  expectedFlows.add(flow3);
  final List<ExecutableFlow> flowList = this.executionFlowDao.fetchFlowHistory(
      flow1.getProjectId(), flow1.getFlowId(),
      TimeUtils.convertDateTimeToUTCMillis("2018-09-01 09:00:00"));
  assertThat(flowList).hasSize(3);
  for (int i = 0; i < flowList.size(); i++) {
    assertTwoFlowSame(flowList.get(i), expectedFlows.get(i));
  }
}