ILIAS  release_7 Revision v7.30-3-g800a261c036
ilMailTemplateContextTest Class Reference

Class ilMailTemplateContextTest. More...

+ Inheritance diagram for ilMailTemplateContextTest:
+ Collaboration diagram for ilMailTemplateContextTest:

Public Member Functions

 getAnonymousTemplateContext (OrgUnitUserService $orgUnitUserService, ilMailEnvironmentHelper $envHelper, ilMailUserHelper $usernameHelper, ilMailLanguageHelper $languageHelper)
 
 userProvider ()
 
 testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues (ilObjUser $user, ilOrgUnitUser $ouUser, array $superiors)
 @dataProvider userProvider More...
 

Private Member Functions

 generateOrgUnitUsers (int $amount)
 

Additional Inherited Members

- Protected Member Functions inherited from ilMailBaseTest
 setUp ()
 
 setGlobalVariable (string $name, $value)
 

Detailed Description

Member Function Documentation

◆ generateOrgUnitUsers()

ilMailTemplateContextTest::generateOrgUnitUsers ( int  $amount)
private
Parameters
int$amount
Returns
array
Exceptions
ReflectionException

Definition at line 64 of file ilMailTemplateContextTest.php.

64 : array
65 {
66 $users = [];
67
68 for ($i = 1; $i <= $amount; $i++) {
69 $user = $this->getMockBuilder(ilOrgUnitUser::class)
70 ->disableOriginalConstructor()
71 ->onlyMethods(['getUserId',])
72 ->getMock();
73 $user->expects($this->atLeastOnce())->method('getUserId')->willReturn($i);
74
75 $users[$i] = $user;
76 }
77
78 return $users;
79 }
$i
Definition: metadata.php:24

References $i.

◆ getAnonymousTemplateContext()

ilMailTemplateContextTest::getAnonymousTemplateContext ( OrgUnitUserService  $orgUnitUserService,
ilMailEnvironmentHelper  $envHelper,
ilMailUserHelper  $usernameHelper,
ilMailLanguageHelper  $languageHelper 
)
Parameters
OrgUnitUserService$orgUnitUserService
ilMailEnvironmentHelper$envHelper
ilMailUserHelper$usernameHelper
ilMailLanguageHelper$languageHelper
Returns
ilMailTemplateContext

Definition at line 21 of file ilMailTemplateContextTest.php.

27 return new class($orgUnitUserService, $envHelper, $usernameHelper, $languageHelper) extends ilMailTemplateContext {
28 public function getId() : string
29 {
30 return 'phpunuit';
31 }
32
33 public function getTitle() : string
34 {
35 return 'phpunuit';
36 }
37
38 public function getDescription() : string
39 {
40 return 'phpunuit';
41 }
42
43 public function getSpecificPlaceholders() : array
44 {
45 return [];
46 }
47
48 public function resolveSpecificPlaceholder(
49 string $placeholder_id,
50 array $context_parameters,
51 ilObjUser $recipient = null,
52 bool $html_markup = false
53 ) : string {
54 return '';
55 }
56 };
57 }
Class ilMailTemplateContext.

◆ testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues()

ilMailTemplateContextTest::testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues ( ilObjUser  $user,
ilOrgUnitUser  $ouUser,
array  $superiors 
)

@dataProvider userProvider

Parameters
ilObjUser$user
ilOrgUnitUser$ouUser
ilOrgUnitUser[]$superiors
Exceptions
ReflectionException

Definition at line 141 of file ilMailTemplateContextTest.php.

145 : void {
146 $ouService = $this->getMockBuilder(OrgUnitUserService::class)
147 ->disableOriginalConstructor()
148 ->onlyMethods(['getUsers',])
149 ->getMock();
150
151 $lng = $this->getMockBuilder(ilLanguage::class)
152 ->disableOriginalConstructor()
153 ->onlyMethods(['txt', 'loadLanguageModule',])
154 ->getMock();
155
156 $envHelper = $this->getMockBuilder(ilMailEnvironmentHelper::class)
157 ->disableOriginalConstructor()
158 ->onlyMethods(['getClientId', 'getHttpPath',])
159 ->getMock();
160
161 $lngHelper = $this->getMockBuilder(ilMailLanguageHelper::class)
162 ->disableOriginalConstructor()
163 ->onlyMethods(['getLanguageByIsoCode', 'getCurrentLanguage',])
164 ->getMock();
165
166 $userHelper = $this->getMockBuilder(ilMailUserHelper::class)
167 ->disableOriginalConstructor()
168 ->onlyMethods(['getUsernameMapForIds',])
169 ->getMock();
170
171 $ouService->expects($this->atLeastOnce())->method('getUsers')->willReturn([$ouUser,]);
172 $lng->expects($this->atLeastOnce())->method('txt')->will($this->returnArgument(0));
173 $envHelper->expects($this->atLeastOnce())->method('getClientId')->willReturn('###phpunit_client###');
174 $envHelper->expects($this->atLeastOnce())->method('getHttpPath')->willReturn('###http_ilias###');
175 $lngHelper->expects($this->atLeastOnce())->method('getLanguageByIsoCode')->willReturn($lng);
176 $lngHelper->expects($this->atLeastOnce())->method('getCurrentLanguage')->willReturn($lng);
177
178 $expectedIdsConstraint = self::logicalAnd(...array_map(function (ilOrgUnitUser $user) {
179 if (version_compare(\PHPUnit\Runner\Version::id(), '9.0', '>=')) {
180 return self::containsEqual($user->getUserId());
181 } else {
182 return self::contains($user->getUserId());
183 }
184 }, $superiors));
185
186 $firstAndLastnames = array_map(function (ilOrgUnitUser $user, int $key) {
187 return "PhpSup{$key} UnitSup{$key}";
188 }, $superiors, array_keys($superiors));
189
190 $userHelper->expects($this->atLeastOnce())->method('getUsernameMapForIds')
191 ->with($expectedIdsConstraint)
192 ->willReturn($firstAndLastnames);
193
195 $ouService,
196 $envHelper,
197 $userHelper,
198 $lngHelper
199 );
200
201 $placeholderResolver = new ilMailTemplatePlaceholderResolver($context, implode('', [
202 '[MAIL_SALUTATION]',
203 '[FIRST_NAME]',
204 '[LAST_NAME]',
205 '[LOGIN]',
206 '[TITLE]',
207 '[FIRSTNAME_LASTNAME_SUPERIOR]',
208 '[ILIAS_URL]',
209 '[CLIENT_NAME]',
210 ]));
211
212 $replaceMessage = $placeholderResolver->resolve($user);
213
214 $this->assertStringContainsString('###Dr. Ing###', $replaceMessage);
215 $this->assertStringContainsString('###phpunit###', $replaceMessage);
216 $this->assertStringContainsString('###Unit###', $replaceMessage);
217 $this->assertStringContainsString('###PHP###', $replaceMessage);
218 $this->assertStringContainsString('###phpunit_client###', $replaceMessage);
219 $this->assertStringContainsString('###http_ilias###', $replaceMessage);
220 $this->assertStringContainsString('mail_salutation_' . $user->getGender(), $replaceMessage);
221
222 foreach ($firstAndLastnames as $firstAndLastname) {
223 $this->assertStringContainsString($firstAndLastname, $replaceMessage);
224 }
225 }
getAnonymousTemplateContext(OrgUnitUserService $orgUnitUserService, ilMailEnvironmentHelper $envHelper, ilMailUserHelper $usernameHelper, ilMailLanguageHelper $languageHelper)
Class ilMailTemplatePlaceholderResolver.
$lng
$context
Definition: webdav.php:26

References OrgUnit\User\ilOrgUnitUser\getUserId(), and ILIAS\GlobalScreen\Provider\id().

+ Here is the call graph for this function:

◆ userProvider()

ilMailTemplateContextTest::userProvider ( )
Returns
array
Exceptions
ReflectionException

Definition at line 85 of file ilMailTemplateContextTest.php.

85 : array
86 {
87 $testUsers = [];
88
89 foreach ([
90 ['gender' => 'm', 'num_superiors' => 2,],
91 ['gender' => 'n', 'num_superiors' => 1,],
92 ['gender' => 'f', 'num_superiors' => 0,],
93 ['gender' => '', 'num_superiors' => 3,]
94 ] as $definition) {
95 $user = $this->getMockBuilder(ilObjUser::class)
96 ->disableOriginalConstructor()
97 ->onlyMethods([
98 'getLanguage',
99 'getUTitle',
100 'getLogin',
101 'getLastname',
102 'getFirstname',
103 'getGender',
104 'getId',
105 ])
106 ->getMock();
107
108 $user->expects($this->atLeastOnce())->method('getLanguage')->willReturn('de');
109 $user->expects($this->atLeastOnce())->method('getUTitle')->willReturn('###Dr. Ing###');
110 $user->expects($this->atLeastOnce())->method('getLogin')->willReturn('###phpunit###');
111 $user->expects($this->atLeastOnce())->method('getLastname')->willReturn('###Unit###');
112 $user->expects($this->atLeastOnce())->method('getFirstname')->willReturn('###PHP###');
113 $user->expects($this->atLeastOnce())->method('getGender')->willReturn($definition['gender']);
114 $user->expects($this->atLeastOnce())->method('getId')->willReturn(4711);
115
116 $ouUser = $this->getMockBuilder(ilOrgUnitUser::class)
117 ->disableOriginalConstructor()
118 ->onlyMethods(['getSuperiors',])
119 ->getMock();
120
121 $superiors = $this->generateOrgUnitUsers($definition['num_superiors']);
122 $ouUser->expects($this->atLeastOnce())->method('getSuperiors')->willReturn($superiors);
123
124 $testUsers[sprintf(
125 'User with gender "%s" and %s superiors',
126 $definition['gender'],
127 $definition['num_superiors']
128 )] = [$user, $ouUser, $superiors,];
129 }
130
131 return $testUsers;
132 }

The documentation for this class was generated from the following file: