ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
ilMailMimeTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
24{
25 private const int USER_ID = 6;
26
27 protected function setUp(): void
28 {
30 ilMailMimeSenderUserById::addUserToCache(self::USER_ID, $this->getUserById(self::USER_ID));
31
32 parent::setUp();
33 }
34
36 {
37 $default_transport = $this->getMockBuilder(ilMailMimeTransport::class)->disableOriginalConstructor()->getMock();
38 $default_transport->expects($this->never())->method('send');
39
40 $transport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
41 $transport->expects($this->once())->method('send');
42
43 $transport_factory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
44 $transport_factory->method('getTransport')->willReturn($default_transport);
45 $this->setGlobalVariable('mail.mime.transport.factory', $transport_factory);
46
47 $refinery = $this->getMockBuilder(Factory::class)->disableOriginalConstructor()->getMock();
48 $this->setGlobalVariable('refinery', $refinery);
49
50 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
51 'set',
52 'get',
53 ])->getMock();
54 $this->setGlobalVariable('ilSetting', $settings);
55
56 $refinery = $this->getMockBuilder(\ILIAS\Refinery\Factory::class)->disableOriginalConstructor()->getMock();
57 $this->setGlobalVariable('refinery', $refinery);
58
59 $mail = new ilMimeMail();
60 $mail->Send($transport);
61 }
62
64 {
65 $default_transport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
66 $default_transport->expects($this->once())->method('send');
67
68 $transport_factory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
69 $transport_factory->method('getTransport')->willReturn($default_transport);
70 $this->setGlobalVariable('mail.mime.transport.factory', $transport_factory);
71
72 $refinery = $this->getMockBuilder(Factory::class)->disableOriginalConstructor()->getMock();
73 $this->setGlobalVariable('refinery', $refinery);
74
75 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
76 'set',
77 'get',
78 ])->getMock();
79 $this->setGlobalVariable('ilSetting', $settings);
80
81 $refinery = $this->getMockBuilder(\ILIAS\Refinery\Factory::class)->disableOriginalConstructor()->getMock();
82 $this->setGlobalVariable('refinery', $refinery);
83
84 $mail = new ilMimeMail();
85 $mail->Send();
86 }
87
89 {
90 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
91 'set',
92 'get',
93 ])->getMock();
94 $settings->method('get')->willReturnCallback(static function ($key): ?string {
95 return (string) ('mail_allow_external' !== $key);
96 });
97 $this->setGlobalVariable('ilSetting', $settings);
98
99 $event_handler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
100 'raise',
101 ])->getMock();
102
103 $factory = new ilMailMimeTransportFactory($settings, $event_handler);
104 $this->assertInstanceOf(ilMailMimeTransportNull::class, $factory->getTransport());
105 }
106
108 {
109 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
110 'set',
111 'get',
112 ])->getMock();
113 $settings->method('get')->willReturnCallback(static fn($key): ?string => '1');
114 $this->setGlobalVariable('ilSetting', $settings);
115
116 $event_handler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
117 'raise',
118 ])->getMock();
119
120 $factory = new ilMailMimeTransportFactory($settings, $event_handler);
121 $this->assertInstanceOf(ilMailMimeTransportSmtp::class, $factory->getTransport());
122 }
123
125 {
126 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
127 'set',
128 'get',
129 ])->getMock();
130
131 $settings->method('get')->willReturnCallback(static function ($key): ?string {
132 if ('mail_allow_external' === $key) {
133 return '1';
134 }
135
136
137 if ('mail_smtp_status' === $key) {
138 return '0';
139 }
140
141 return '1';
142 });
143 $this->setGlobalVariable('ilSetting', $settings);
144
145 $event_handler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
146 'raise',
147 ])->getMock();
148
149 $factory = new ilMailMimeTransportFactory($settings, $event_handler);
150 $this->assertInstanceOf(ilMailMimeTransportSendmail::class, $factory->getTransport());
151 }
152
154 {
155 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
156 'set',
157 'get',
158 ])->getMock();
159 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
160
161 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
162 $this->assertInstanceOf(ilMailMimeSenderSystem::class, $factory->getSenderByUsrId(ANONYMOUS_USER_ID));
163 }
164
166 {
167 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
168 'set',
169 'get',
170 ])->getMock();
171 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
172
173 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
174 $this->assertInstanceOf(ilMailMimeSenderSystem::class, $factory->system());
175 }
176
177 protected function getUserById(int $usr_id): ilObjUser
178 {
179 $user = $this->getMockBuilder(ilObjUser::class)
180 ->disableOriginalConstructor()
181 ->onlyMethods(['getId'])
182 ->getMock();
183 $user->method('getId')->willReturn($usr_id);
184
185 return $user;
186 }
187
189 {
190 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
191 'set',
192 'get',
193 ])->getMock();
194 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
195
196 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
197 $this->assertInstanceOf(ilMailMimeSenderUser::class, $factory->getSenderByUsrId(self::USER_ID));
198 }
199
201 {
202 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
203 'set',
204 'get',
205 ])->getMock();
206 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
207
208 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
209 $this->assertInstanceOf(ilMailMimeSenderUser::class, $factory->user(self::USER_ID));
210 }
211}
Builds data types.
Definition: Factory.php:36
setGlobalVariable(string $name, $value)
static addUserToCache(int $usr_id, ilObjUser $user)
testFactoryWillReturnUserSenderForExistingUserId()
testMimMailDelegatesEmailDeliveryToThePassedTransporter()
testMimMailDelegatesEmailDeliveryToDefaultTransport()
testTransportFactoryWillReturnNullTransportIfExternalEmailDeliveryIsDisabled()
testFactoryWillReturnUserSenderWhenExplicitlyRequested()
testFactoryWillReturnSystemSenderWhenExplicitlyRequested()
testFactoryWillReturnSystemSenderForAnonymousUserId()
testTransportFactoryWillReturnSendmailTransportIfSmtpTransportIsDisabled()
getUserById(int $usr_id)
testTransportFactoryWillReturnSmtpTransportIfEnabled()
const int USER_ID
static setDefaultTransport(?ilMailMimeTransport $transport)
User class.
const ANONYMOUS_USER_ID
Definition: constants.php:27
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.