### Question:
PeriodicReloadStrategy implements ConfijReloadStrategy { @Override @Synchronized public void register(@NonNull ConfijPipeline<?> pipeline) { if (isInitialized) { throw new IllegalStateException("already initialized"); } isInitialized = true; executor.scheduleWithFixedDelay(() -> { Thread.currentThread() .setName("ConfijReload"); Instant start = Instant.now(); LOGGER.debug("starting to reload ConfiJ configuration..."); try { pipeline.build(); Duration dt = Duration.between(start, Instant.now()); LOGGER.debug("successfully reloaded configuration within {}ms", dt); } catch (Exception e) { LOGGER.info("configuration reloading failed, will retry in {}ms", reloadEvery.toMillis(), e); } }, initialDelay.toMillis(), reloadEvery.toMillis(), TimeUnit.MILLISECONDS); } PeriodicReloadStrategy();  PeriodicReloadStrategy(Duration reloadEvery);  PeriodicReloadStrategy(Duration reloadEvery, Duration initialDelay); @Override @Synchronized void register(@NonNull ConfijPipeline<?> pipeline);  }### Answer:
@Test void testScheduled() { MockPipeline mockPipeline = new MockPipeline(); new PeriodicReloadStrategy(Duration.ofSeconds(10), Duration.ofMillis(1)).register(mockPipeline); await().atMost(5, TimeUnit.SECONDS) .untilAsserted(() -> assertThat(mockPipeline.getUpdatesDone()).isGreaterThanOrEqualTo(1)); }