Schedule { public Instant getStartTime() { return startTime; } Schedule(Class<? extends SchedulableJob> jobClass, String name, String frequency,
           Instant startTime, Map<String,ViewTemplate> views); Class<? extends SchedulableJob> getJobClass(); String getFrequency(); String getName(); Instant getStartTime(); Map<String,ViewTemplate> getViewTemplates(); static Schedule parseJson(String json); String toString(); @Override boolean equals(Object that); @Override int hashCode();  }
@Test public void testStartNextHour() { Instant startTime = Instant.parse("2015-06-10T02:42:37.52Z"); Instant effectiveStart = Instant.parse("2015-06-10T03:00:00.00Z"); Schedule schedule = new Schedule.Builder() .jobName("scheduled-input-output") .jobClass(ScheduledInputOutputJob.class) .frequency("0 * * * *") .startAt(startTime) .withInput("source_users", ScheduledInputOutputApp.INPUT_URI_PATTERN, "0 * * * *") .withOutput("target_users", ScheduledInputOutputApp.OUTPUT_URI_PATTERN) .build(); assertEquals(effectiveStart, schedule.getStartTime()); }