ILIAS  release_8 Revision v8.24
ilMailOptionsTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use PHPUnit\Framework\MockObject\MockObject;
22
27{
28 protected MockObject $setting;
29 protected stdClass $object;
30
31 protected function setUp(): void
32 {
33 parent::setUp();
34
35 $this->database = $this->getMockBuilder(ilDBInterface::class)
36 ->getMock();
37 $queryMock = $this->getMockBuilder(ilDBStatement::class)
38 ->getMock();
39
40 $this->object = new stdClass();
41 $this->object->cronjob_notification = false;
42 $this->object->signature = 'smth';
43 $this->object->linebreak = 0;
44 $this->object->incoming_type = 1;
45 $this->object->mail_address_option = 0;
46 $this->object->email = 'test@test.com';
47 $this->object->second_email = 'ilias@ilias.com';
48
49 $this->database->expects($this->once())->method('queryF')->willReturn($queryMock);
50 $this->database->expects($this->once())->method('fetchObject')->willReturn($this->object);
51 $this->database->method('replace')->willReturn(0);
52 $this->setGlobalVariable('ilDB', $this->database);
53 }
54
55 public function testConstructor(): void
56 {
57 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods(['get'])->getMock();
58 $settings->method('get')->willReturnCallback(static function (string $key, ?string $default = null) {
59 if ($key === 'mail_incoming_mail' || $key === 'mail_address_option') {
60 return $default;
61 }
62
63 if ($key === 'show_mail_settings') {
64 return '0';
65 }
66
67 return $default;
68 });
69
70 $mailOptions = new ilMailOptions(
71 1,
72 null,
74 );
75
76 $this->assertSame('', $mailOptions->getSignature());
77 $this->assertSame(ilMailOptions::INCOMING_LOCAL, $mailOptions->getIncomingType());
78 $this->assertSame(ilMailOptions::DEFAULT_LINE_BREAK, $mailOptions->getLinebreak());
79 $this->assertFalse($mailOptions->isCronJobNotificationEnabled());
80 }
81
82 public function testConstructorWithUserSettings(): void
83 {
84 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods(['get'])->getMock();
85 $settings->method('get')->willReturnCallback(static function (string $key, ?string $default = null) {
86 if ($key === 'mail_incoming_mail' || $key === 'mail_address_option') {
87 return $default;
88 }
89
90 if ($key === 'show_mail_settings') {
91 return '1';
92 }
93
94 if ($key === 'usr_settings_disable_mail_incoming_mail') {
95 return '0';
96 }
97
98 return $default;
99 });
100
101 $mailOptions = new ilMailOptions(
102 1,
103 null,
105 );
106
107 $this->assertSame($this->object->signature, $mailOptions->getSignature());
108 $this->assertSame($this->object->incoming_type, $mailOptions->getIncomingType());
109 $this->assertSame($this->object->linebreak, $mailOptions->getLinebreak());
110 $this->assertSame($this->object->cronjob_notification, $mailOptions->isCronJobNotificationEnabled());
111 }
112}
Class ilMailBaseTest.
setGlobalVariable(string $name, $value)
Class ilMailOptions this class handles user mails.
string $key
Consumer key/client ID value.
Definition: System.php:193
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200