19 declare(strict_types=1);
31 protected function setUp(): void
35 $this->
database = $this->getMockBuilder(ilDBInterface::class)
37 $query_mock = $this->getMockBuilder(ilDBStatement::class)
41 $this->
object->cronjob_notification =
false;
42 $this->
object->signature =
'smth';
43 $this->
object->incoming_type = 1;
44 $this->
object->mail_address_option = 0;
45 $this->
object->email =
'test@test.com';
46 $this->
object->second_email =
'ilias@ilias.com';
47 $this->
object->absence_status =
false;
48 $this->
object->absent_from = time();
49 $this->
object->absent_until = time();
50 $this->
object->absence_ar_subject =
'subject';
51 $this->
object->absence_ar_body =
'body';
54 $this->
database->expects($this->once())->method(
'queryF')->willReturn($query_mock);
55 $this->
database->expects($this->once())->method(
'fetchObject')->willReturn($this->
object);
56 $this->
database->method(
'replace')->willReturn(0);
62 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
'get'])->getMock();
63 $settings->method(
'get')->willReturnCallback(
static function (
string $key, ?
string $default =
null) {
64 if ($key ===
'mail_incoming_mail' || $key ===
'mail_address_option') {
68 if ($key ===
'show_mail_settings') {
78 $this->createMock(ClockInterface::class),
82 $this->assertSame(
'', $mail_options->getSignature());
84 $this->assertFalse($mail_options->isCronJobNotificationEnabled());
89 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
'get'])->getMock();
90 $settings->method(
'get')->willReturnCallback(
static function (
string $key, ?
string $default =
null) {
91 if ($key ===
'mail_incoming_mail' || $key ===
'mail_address_option') {
95 if ($key ===
'show_mail_settings') {
99 if ($key ===
'usr_settings_disable_mail_incoming_mail') {
109 $this->createMock(ClockInterface::class),
113 $this->assertSame($this->
object->signature, $mail_options->getSignature());
114 $this->assertSame($this->
object->incoming_type, $mail_options->getIncomingType());
115 $this->assertSame($this->
object->cronjob_notification, $mail_options->isCronJobNotificationEnabled());
116 $this->assertSame($this->
object->absence_status, $mail_options->getAbsenceStatus());
117 $this->assertSame($this->
object->absent_from, $mail_options->getAbsentFrom());
118 $this->assertSame($this->
object->absent_until, $mail_options->getAbsentUntil());
119 $this->assertSame($this->
object->absence_ar_subject, $mail_options->getAbsenceAutoresponderSubject());
120 $this->assertSame($this->
object->absence_ar_body, $mail_options->getAbsenceAutoresponderBody());
123 #[DataProvider('provideMailOptionsData')] 124 public function testIsAbsent(
bool $absence_status,
int $absent_from,
int $absent_until,
bool $result): void
127 $this->
object->absence_status = $absence_status;
128 $this->
object->absent_from = $absent_from;
129 $this->
object->absent_until = $absent_until;
130 $this->
object->absence_ar_subject =
'subject';
131 $this->
object->absence_ar_body =
'body';
133 $cloc_service = $this->createMock(ClockInterface::class);
134 $cloc_service->method(
'now')->willReturn((
new DateTimeImmutable())->setTimestamp(100));
136 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
'get'])->getMock();
137 $settings->method(
'get')->willReturnCallback(
static function (
string $key, ?
string $default =
null) {
138 if ($key ===
'mail_incoming_mail' || $key ===
'mail_address_option') {
142 if ($key ===
'show_mail_settings') {
146 if ($key ===
'usr_settings_disable_mail_incoming_mail') {
160 $this->assertEquals($result, $mail_options->isAbsent());
165 yield
'correct configuration' => [
166 'absence_status' =>
true,
167 'absent_from' => 100,
168 'absent_until' => 100,
172 yield
'not absent' => [
173 'absence_status' =>
false,
174 'absent_from' => 100,
175 'absent_until' => 100,
179 yield
'absent, absent_from is in the future' => [
180 'absence_status' =>
true,
181 'absent_from' => 100 + 1,
182 'absent_until' => 100,
186 yield
'absent, absent_until is in the past' => [
187 'absence_status' =>
true,
188 'absent_from' => 100,
189 'absent_until' => 100 - 1,
193 yield
'absent, absent_from is in the past, absent_until is in the future' => [
194 'absence_status' =>
true,
195 'absent_from' => 100 - 1,
196 'absent_until' => 100 + 1,
MockObject &ilSetting $settings
testConstructorWithUserSettings()
static provideMailOptionsData()
final const int INCOMING_LOCAL
testIsAbsent(bool $absence_status, int $absent_from, int $absent_until, bool $result)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
setGlobalVariable(string $name, $value)
MockObject &ilDBInterface $database