41 $clock = $this->createMock(ClockInterface::class);
42 $clock->method(
'now')->willReturn($faked_now);
44 $repository = $this->createMock(AutoresponderRepository::class);
46 if ($last_auto_responder_time ===
null) {
47 $repository->expects($this->once())->method(
'exists')->willReturn(
false);
48 $repository->expects($this->never())->method(
'findBySenderIdAndReceiverId');
51 self::MAIL_SENDER_USER_ID,
52 self::MAIL_RECEIVER_USER_ID,
57 self::MAIL_SENDER_USER_ID,
58 self::MAIL_RECEIVER_USER_ID,
59 $last_auto_responder_time
62 $repository->expects($this->once())->method(
'exists')->willReturn(
true);
63 $repository->expects($this->once())->method(
'findBySenderIdAndReceiverId')->willReturn($auto_responder_record);
66 if ($expects_active_auto_responder) {
67 $repository->expects($this->once())->method(
'store')->with(
68 $this->callback(
static function (
AutoresponderDto $actual) use ($faked_now, $auto_responder_record):
bool {
71 $actual->
getReceiverId() === $auto_responder_record->getReceiverId() &&
72 $actual->
getSenderId() === $auto_responder_record->getSenderId()
73 ) && $faked_now->format(
'Y-m-d H:i:s') === $actual->
getSentTime()->format(
'Y-m-d H:i:s');
77 $repository->expects($this->never())->method(
'store');
80 $mail_receiver_options = $this->getMockBuilder(ilMailOptions::class)->disableOriginalConstructor()->getMock();
81 $mail_receiver_options->method(
'getUsrId')->willReturn(self::MAIL_RECEIVER_USER_ID);
82 $mail_receiver_options->method(
'isAbsent')->willReturn(
true);
84 $mail_options = $this->getMockBuilder(ilMailOptions::class)->disableOriginalConstructor()->getMock();
85 $mail_options->method(
'getUsrId')->willReturn(self::MAIL_SENDER_USER_ID);
86 $mail_options->method(
'isAbsent')->willReturn(
false);
95 $auto_responder_service->enqueueAutoresponderIfEnabled(self::MAIL_SENDER_USER_ID, $mail_receiver_options, $mail_options);
97 $auto_responder_service->handleAutoresponderMails(self::MAIL_RECEIVER_USER_ID);
createAutoresponderRecord(int $auto_responder_sender_usr_id, int $auto_responder_receiver_id, DateTimeImmutable $sender_time)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
createService(int $global_idle_time_interval, AutoresponderRepository $auto_responder_repository, ClockInterface $clock)