ILIAS  release_8 Revision v8.23
ilMailOptionsTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
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,
73  $settings
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,
104  $settings
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 ilMailOptions this class handles user mails.
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
Class ilMailBaseTest.
setGlobalVariable(string $name, $value)
string $key
Consumer key/client ID value.
Definition: System.php:193