1 <?php declare(strict_types=1);
14 protected function setUp() : void
34 $userInstanceById = [];
35 $mailOptionsById = [];
36 foreach ($loginToIdMap as
$login => $usrId) {
38 ->getMockBuilder(ilObjUser::class)
39 ->disableOriginalConstructor()
40 ->setMethods([
'getId',
'hasToAcceptTermsOfService',
'checkTimeLimit',
'getActive'])
42 $user->expects($this->any())->method(
'getId')->willReturn($usrId);
43 $user->expects($this->any())->method(
'getActive')->willReturn(
true);
44 $user->expects($this->any())->method(
'hasToAcceptTermsOfService')->willReturn(
false);
45 $user->expects($this->any())->method(
'checkTimeLimit')->willReturn(
true);
46 $userInstanceById[$usrId] = $user;
49 ->getMockBuilder(ilMailOptions::class)
50 ->disableOriginalConstructor()
51 ->setMethods([
'getExternalEmailAddresses',
'getIncomingType'])
53 $mailOptions->expects($this->any())->method(
'getExternalEmailAddresses')->willReturn([
54 'phpunit' . $usrId .
'@ilias.de',
57 $mailOptionsById[$usrId] = $mailOptions;
60 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
63 $addressTypeFactory = $this
64 ->getMockBuilder(ilMailAddressTypeFactory::class)
65 ->disableOriginalConstructor()
66 ->setMethods([
'getByPrefix'])
68 $addressTypeFactory->expects($this->any())
69 ->method(
'getByPrefix')
70 ->will($this->returnCallback(
function ($arg) use ($loginToIdMap) {
72 protected $loginToIdMap = [];
77 $this->address = $address;
78 $this->loginToIdMap = array_map(
function ($usrId) {
83 public function resolve() : array
85 return $this->loginToIdMap[$this->address->getMailbox()] ?? [];
88 public function validate(
int $senderId) :
bool 93 public function getErrors() : array
100 return $this->address;
105 $db = $this->getMockBuilder(ilDBInterface::class)->getMock();
107 $db->expects($this->any())->method(
'nextId')->will($this->returnCallback(
function () use (&$nextId) {
113 $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->getMock();
114 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
115 $lng = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
116 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->getMock();
119 $mailFileData = $this->getMockBuilder(ilFileDataMail::class)->disableOriginalConstructor()->getMock();
120 $mailOptions = $this->getMockBuilder(ilMailOptions::class)->disableOriginalConstructor()->getMock();
121 $mailBox = $this->getMockBuilder(ilMailbox::class)->disableOriginalConstructor()->getMock();
123 $mailService =
new ilMail(
135 function (
string $login) use ($loginToIdMap) {
136 return $loginToIdMap[
$login] ?? 0;
143 $mailTransport = $this
144 ->getMockBuilder(ilMailMimeTransport::class)
146 $mailTransport->expects($this->exactly(1))->method(
'send')->with($this->callback(
function (
148 ) use ($loginToIdMap) {
150 foreach ($mailer->
getBcc() as $bcc) {
151 $totalBcc = array_filter(array_map(
'trim', explode(
',', $bcc))) + $totalBcc;
154 return count($totalBcc) === count($loginToIdMap);
155 }))->willReturn(
true);
158 $mailService->setUserInstanceById($userInstanceById);
159 $mailService->setMailOptionsByUserIdMap($mailOptionsById);
161 $mailService->sendMail(
162 implode(
',', array_slice(array_keys($loginToIdMap), 0, 3)),
163 implode(
',', array_slice(array_keys($loginToIdMap), 3, 2)),
164 implode(
',', array_slice(array_keys($loginToIdMap), 5, 2)),
static addUserToCache(int $usrId, ilObjUser $user)
Class ilMailMimeSenderFactory.
testExternalMailDeliveryToLocalRecipientsWorksAsExpected()
static setDefaultTransport(?ilMailMimeTransport $transport)
static getDefaultTransport()
Interface ilMailAddressType.
Class ilMailRfc822AddressParserFactory.
setGlobalVariable(string $name, $value)
__construct(Container $dic, ilPlugin $plugin)