ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 $mail = new ilMimeMail();
57 $mail->Send($transport);
58 }
59
61 {
62 $default_transport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
63 $default_transport->expects($this->once())->method('send');
64
65 $transport_factory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
66 $transport_factory->method('getTransport')->willReturn($default_transport);
67 $this->setGlobalVariable('mail.mime.transport.factory', $transport_factory);
68
69 $refinery = $this->getMockBuilder(Factory::class)->disableOriginalConstructor()->getMock();
70 $this->setGlobalVariable('refinery', $refinery);
71
72 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
73 'set',
74 'get',
75 ])->getMock();
76 $this->setGlobalVariable('ilSetting', $settings);
77
78 $mail = new ilMimeMail();
79 $mail->Send();
80 }
81
83 {
84 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
85 'set',
86 'get',
87 ])->getMock();
88 $settings->method('get')->willReturnCallback(static function ($key): ?string {
89 return (string) ('mail_allow_external' !== $key);
90 });
91 $this->setGlobalVariable('ilSetting', $settings);
92
93 $event_handler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
94 'raise',
95 ])->getMock();
96
97 $factory = new ilMailMimeTransportFactory($settings, $event_handler);
98 $this->assertInstanceOf(ilMailMimeTransportNull::class, $factory->getTransport());
99 }
100
102 {
103 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
104 'set',
105 'get',
106 ])->getMock();
107 $settings->method('get')->willReturnCallback(static fn($key): ?string => '1');
108 $this->setGlobalVariable('ilSetting', $settings);
109
110 $event_handler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
111 'raise',
112 ])->getMock();
113
114 $factory = new ilMailMimeTransportFactory($settings, $event_handler);
115 $this->assertInstanceOf(ilMailMimeTransportSmtp::class, $factory->getTransport());
116 }
117
119 {
120 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
121 'set',
122 'get',
123 ])->getMock();
124
125 $settings->method('get')->willReturnCallback(static function ($key): ?string {
126 if ('mail_allow_external' === $key) {
127 return '1';
128 }
129
130
131 if ('mail_smtp_status' === $key) {
132 return '0';
133 }
134
135 return '1';
136 });
137 $this->setGlobalVariable('ilSetting', $settings);
138
139 $event_handler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
140 'raise',
141 ])->getMock();
142
143 $factory = new ilMailMimeTransportFactory($settings, $event_handler);
144 $this->assertInstanceOf(ilMailMimeTransportSendmail::class, $factory->getTransport());
145 }
146
148 {
149 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
150 'set',
151 'get',
152 ])->getMock();
153 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
154
155 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
156 $this->assertInstanceOf(ilMailMimeSenderSystem::class, $factory->getSenderByUsrId(ANONYMOUS_USER_ID));
157 }
158
160 {
161 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
162 'set',
163 'get',
164 ])->getMock();
165 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
166
167 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
168 $this->assertInstanceOf(ilMailMimeSenderSystem::class, $factory->system());
169 }
170
171 protected function getUserById(int $usr_id): ilObjUser
172 {
173 $user = $this->getMockBuilder(ilObjUser::class)
174 ->disableOriginalConstructor()
175 ->onlyMethods(['getId'])
176 ->getMock();
177 $user->method('getId')->willReturn($usr_id);
178
179 return $user;
180 }
181
183 {
184 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
185 'set',
186 'get',
187 ])->getMock();
188 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
189
190 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
191 $this->assertInstanceOf(ilMailMimeSenderUser::class, $factory->getSenderByUsrId(self::USER_ID));
192 }
193
195 {
196 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
197 'set',
198 'get',
199 ])->getMock();
200 $mustache_factory = $this->getMockBuilder(ilMustacheFactory::class)->getMock();
201
202 $factory = new ilMailMimeSenderFactory($settings, $mustache_factory);
203 $this->assertInstanceOf(ilMailMimeSenderUser::class, $factory->user(self::USER_ID));
204 }
205}
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