### Question:
SchedulerConfig { public static SchedulerConfig.Builder builder() { return new SchedulerConfig.Builder(); }  static SchedulerConfig getDefault(Clock clock); static SchedulerConfig.Builder builder(); long getScheduleDelay(Priority priority, long minTimestamp, int attemptNumber); @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) JobInfo.Builder configureJob(
      JobInfo.Builder builder, Priority priority, long minimumTimestamp, int attemptNumber); Set<Flag> getFlags(Priority priority);  }### Answer:
@Test public void build_whenClockNotSet_shouldThrow() { Exception ex = assertThrows(NullPointerException.class, () -> SchedulerConfig.builder().build()); assertThat(ex.getMessage()).contains("clock"); }
@Test public void build_whenNotAllPrioritiesSet_shouldThrow() { Exception ex = assertThrows( IllegalStateException.class, () -> SchedulerConfig.builder() .setClock(CLOCK) .addConfig( Priority.DEFAULT, SchedulerConfig.ConfigValue.builder() .setDelta(1) .setMaxAllowedDelay(1) .build()) .build()); assertThat(ex.getMessage()).contains("priorities"); }