### Question:
LocalTimeRange extends Range<LocalTime> { public static LocalTimeRange between(final int startHour, final int endHour) { return new LocalTimeRange(of(startHour, 0, 0), of(endHour, 0, 0)); } private  LocalTimeRange(final LocalTime lowerBound, final LocalTime upperBound); static LocalTimeRange between(final int startHour, final int endHour); static LocalTimeRange midnight(); static LocalTimeRange endOfDay(); static LocalTimeRange startOfDay(); static LocalTimeRange noon(); static LocalTimeRange beforeNoon(); static LocalTimeRange afterNoon(); static LocalTimeRange now(); static LocalTimeRange all(); static LocalTimeRange after(final LocalTime after); static LocalTimeRange before(final LocalTime before);  }### Answer:
@Test public void betweenHoursOfTheDay() { final LocalTimeRange noon = between(3, 7); assertThat(noon.lowerBound()).isEqualTo(LocalTime.of(3, 0, 0)); assertThat(noon.upperBound()).isEqualTo(LocalTime.of(7, 0, 0)); }
@Test public void betweenHoursUpperBoundShouldBeEqualToOrGreaterThanTheLowerBound() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("lower bound should be less-than-or-equal-to the upper bound"); between(7, 3); }