Я пытаюсь протестировать метод по расписанию, который запускается один раз в день. Вот xml часть
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
<task:scheduler id="myScheduler" pool-size="10" />
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="refillingServiceImpl" method="refill"
cron="0 0 21 * * *" />
</task:scheduled-tasks>
<task:executor id="myExecutor" pool-size="5"/>
Метод работает, как ожидалось, в указанное время в соответствии с моим системным временем. Но все незапланированные методы, которые работают с датой / временем в приложении, используют общий экземпляр Clock, и когда я хочу установить определенное c время для теста - я просто меняю этот экземпляр Clock. Перед тестом я устанавливаю Часы на 20: 59: 50
//June 18, 2020 20:59:50 Local Time (Kiev, GMT +3), Thursday
long offset = 1592503190 - Instant.now().getEpochSecond();
TimeUtil.setClock(Clock.offset(Clock.system(TimeUtil.getDefaultZoneId()), Duration.ofSeconds(offset)));
, но я не знаю, как сказать, что планировщик использует эти часы, но не систему. Возможно ли это?