ILIAS  release_7 Revision v7.30-3-g800a261c036
ilMailMimeTest.php
Go to the documentation of this file.
1<?php declare(strict_types=1);
2
3/* Copyright (c) 1998-2017 ILIAS open source, Extended GPL, see docs/LICENSE */
4
10{
11 const USER_ID = 6;
12
16 protected function setUp() : void
17 {
18 if (!defined('ANONYMOUS_USER_ID')) {
19 define('ANONYMOUS_USER_ID', 13);
20 }
21
23 ilMailMimeSenderUserById::addUserToCache(self::USER_ID, $this->getUserById(self::USER_ID));
24
25 parent::setUp();
26 }
27
32 {
33 $defaultTransport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
34 $defaultTransport->expects($this->never())->method('send');
35
36 $transport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
37 $transport->expects($this->once())->method('send');
38
39 $transportFactory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
40 $transportFactory->expects($this->any())->method('getTransport')->will($this->returnValue($defaultTransport));
41 $this->setGlobalVariable('mail.mime.transport.factory', $transportFactory);
42
43 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->onlyMethods([
44 'set',
45 'get'
46 ])->getMock();
47 $this->setGlobalVariable('ilSetting', $settings);
48
49 $mail = new ilMimeMail();
50 $mail->send($transport);
51 }
52
57 {
58 $defaultTransport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
59 $defaultTransport->expects($this->once())->method('send');
60
61 $transportFactory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
62 $transportFactory->expects($this->any())->method('getTransport')->will($this->returnValue($defaultTransport));
63 $this->setGlobalVariable('mail.mime.transport.factory', $transportFactory);
64
65 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->onlyMethods([
66 'set',
67 'get'
68 ])->getMock();
69 $this->setGlobalVariable('ilSetting', $settings);
70
71 $mail = new ilMimeMail();
72 $mail->send();
73 }
74
79 {
80 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
81 'set',
82 'get'
83 ])->getMock();
84 $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
85 if ('mail_allow_external' == $key) {
86 return false;
87 }
88
89 return true;
90 }));
91 $this->setGlobalVariable('ilSetting', $settings);
92
93 $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
94 'raise',
95 ])->getMock();
96
97 $factory = new ilMailMimeTransportFactory($settings, $eventHandler);
98 $this->assertInstanceOf('\ilMailMimeTransportNull', $factory->getTransport());
99 }
100
105 {
106 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
107 'set',
108 'get'
109 ])->getMock();
110 $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
111 if ('mail_allow_external' == $key) {
112 return true;
113 }
114
115
116 if ('mail_smtp_status' == $key) {
117 return true;
118 }
119
120 return true;
121 }));
122 $this->setGlobalVariable('ilSetting', $settings);
123
124 $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
125 'raise',
126 ])->getMock();
127
128 $factory = new ilMailMimeTransportFactory($settings, $eventHandler);
129 $this->assertInstanceOf('\ilMailMimeTransportSmtp', $factory->getTransport());
130 }
131
136 {
137 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
138 'set',
139 'get'
140 ])->getMock();
141
142 $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
143 if ('mail_allow_external' == $key) {
144 return true;
145 }
146
147
148 if ('mail_smtp_status' == $key) {
149 return false;
150 }
151
152 return true;
153 }));
154 $this->setGlobalVariable('ilSetting', $settings);
155
156 $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
157 'raise',
158 ])->getMock();
159
160 $factory = new ilMailMimeTransportFactory($settings, $eventHandler);
161 $this->assertInstanceOf('\ilMailMimeTransportSendMail', $factory->getTransport());
162 }
163
168 {
169 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
170 'set',
171 'get'
172 ])->getMock();
173
174 $factory = new ilMailMimeSenderFactory($settings);
175 $this->assertInstanceOf('\ilMailMimeSenderSystem', $factory->getSenderByUsrId(ANONYMOUS_USER_ID));
176 }
177
182 {
183 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
184 'set',
185 'get'
186 ])->getMock();
187
188 $factory = new ilMailMimeSenderFactory($settings);
189 $this->assertInstanceOf('\ilMailMimeSenderSystem', $factory->system());
190 }
191
197 protected function getUserById(int $usrId) : ilObjUser
198 {
199 $user = $this->getMockBuilder(ilObjUser::class)
200 ->disableOriginalConstructor()
201 ->onlyMethods(['getId'])
202 ->getMock();
203 $user->expects($this->any())->method('getId')->will($this->returnValue($usrId));
204
205 return $user;
206 }
207
212 {
213 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
214 'set',
215 'get'
216 ])->getMock();
217
218 $factory = new ilMailMimeSenderFactory($settings);
219 $this->assertInstanceOf('\ilMailMimeSenderUser', $factory->getSenderByUsrId(self::USER_ID));
220 }
221
226 {
227 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
228 'set',
229 'get'
230 ])->getMock();
231
232 $factory = new ilMailMimeSenderFactory($settings);
233 $this->assertInstanceOf('\ilMailMimeSenderUser', $factory->user(self::USER_ID));
234 }
235}
An exception for terminatinating execution or to throw for unit testing.
Class ilMailBaseTest.
setGlobalVariable(string $name, $value)
Class ilMailMimeSenderFactory.
static addUserToCache(int $usrId, ilObjUser $user)
Class ilMailMimeTest.
testFactoryWillReturnUserSenderForExistingUserId()
testMimMailDelegatesEmailDeliveryToThePassedTransporter()
testMimMailDelegatesEmailDeliveryToDefaultTransport()
testTransportFactoryWillReturnNullTransportIfExternalEmailDeliveryIsDisabled()
testFactoryWillReturnUserSenderWhenExplicitlyRequested()
testFactoryWillReturnSystemSenderWhenExplicitlyRequested()
testFactoryWillReturnSystemSenderForAnonymousUserId()
testTransportFactoryWillReturnSendmailTransportIfSmtpTransportIsDisabled()
getUserById(int $usrId)
testTransportFactoryWillReturnSmtpTransportIfEnabled()
Class ilMimeMail.
static setDefaultTransport(?ilMailMimeTransport $transport)
const ANONYMOUS_USER_ID
Definition: constants.php:25
$factory
Definition: metadata.php:58