39 : void {
40 $clock = $this->createMock(ClockInterface::class);
41 $clock->method('now')->willReturn($faked_now);
42
43 $repository = $this->createMock(AutoresponderRepository::class);
44
45 if ($last_auto_responder_time === null) {
46 $repository->expects($this->once())->method('exists')->willReturn(false);
47 $repository->expects($this->never())->method('findBySenderIdAndReceiverId');
48
50 self::MAIL_SENDER_USER_ID,
51 self::MAIL_RECEIVER_USER_ID,
52 $faked_now
53 );
54 } else {
56 self::MAIL_SENDER_USER_ID,
57 self::MAIL_RECEIVER_USER_ID,
58 $last_auto_responder_time
59 );
60
61 $repository->expects($this->once())->method('exists')->willReturn(true);
62 $repository->expects($this->once())->method('findBySenderIdAndReceiverId')->willReturn($auto_responder_record);
63 }
64
65 if ($expects_active_auto_responder) {
66 $repository->expects($this->once())->method('store')->with(
68
69 $actual->
getReceiverId() === $auto_responder_record->getReceiverId() &&
70 $actual->
getSenderId() === $auto_responder_record->getSenderId()
71 ) && $faked_now->format(
'Y-m-d H:i:s') === $actual->
getSentTime()->format(
'Y-m-d H:i:s'))
72 );
73 } else {
74 $repository->expects($this->never())->method('store');
75 }
76
77 $mail_receiver_options = $this->getMockBuilder(ilMailOptions::class)->disableOriginalConstructor()->getMock();
78 $mail_receiver_options->method('getUsrId')->willReturn(self::MAIL_RECEIVER_USER_ID);
79 $mail_receiver_options->method('isAbsent')->willReturn(true);
80
81 $mail_options = $this->getMockBuilder(ilMailOptions::class)->disableOriginalConstructor()->getMock();
82 $mail_options->method('getUsrId')->willReturn(self::MAIL_SENDER_USER_ID);
83 $mail_options->method('isAbsent')->willReturn(false);
84
85
87 $interval,
88 $repository,
89 $clock
90 );
91
92 $auto_responder_service->enqueueAutoresponderIfEnabled(self::MAIL_SENDER_USER_ID, $mail_receiver_options, $mail_options);
93
94 $auto_responder_service->handleAutoresponderMails(self::MAIL_RECEIVER_USER_ID);
95 }
createService(int $global_idle_time_interval, AutoresponderRepository $auto_responder_repository, ClockInterface $clock)
createAutoresponderRecord(int $auto_responder_sender_usr_id, int $auto_responder_receiver_id, DateTimeImmutable $sender_time)