TimeDelay implements Serializable, Comparable<TimeDelay> { public static TimeDelay of(LocalTime expectedTime) { return expectedTime != null ? new TimeDelay(expectedTime, DEFAULT_DELAY) : null; } private  TimeDelay(); private  TimeDelay(LocalTime expectedTime, Long delay); static TimeDelay now(); static TimeDelay of(LocalTime expectedTime); static TimeDelay of(LocalTime expectedTime, Long delay); static TimeDelay of(LocalTime expectedTime, Long delay, TemporalUnit unit); static TimeDelay computeFrom(LocalTime expectedTime, LocalTime effectiveTime); static TimeDelay from(TimeDelay timeDelay); static TimeDelay fromWithoutDelay(TimeDelay expectedTime); TimeDelay withDelay(Long delay); boolean isAfter(TimeDelay target); boolean isBefore(TimeDelay target); LocalTime getEffectiveTime(); LocalDateTime atDate(LocalDate date); @Override String toString(); @Override boolean equals(Object obj); @Override int hashCode(); @Override int compareTo(TimeDelay target); final LocalTime getExpectedTime(); final long getDelay();  }
@Test(expected = NullPointerException.class) public void testOf3NullUnit() throws Exception { TimeDelay.of(LocalTime.parse("18:00"), 30L, null); }
@Test(expected = UnsupportedTemporalTypeException.class) public void testOf3UnsupportedTemporalTypeException1() throws Exception { TimeDelay.of(LocalTime.parse("18:00"), 30L, ChronoUnit.MICROS); }
@Test(expected = UnsupportedTemporalTypeException.class) public void testOf3UnsupportedTemporalTypeException2() throws Exception { TimeDelay.of(LocalTime.parse("18:00"), 30L, ChronoUnit.DAYS); }