ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
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)
 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.

References $i.

Referenced by userProvider().

64  : array
65  {
66  $users = [];
67 
68  for ($i = 1; $i <= $amount; $i++) {
69  $user = $this->getMockBuilder(ilOrgUnitUser::class)
70  ->disableOriginalConstructor()
71  ->setMethods(['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
+ Here is the caller graph for this function:

◆ 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.

Referenced by testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues().

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.
+ Here is the caller graph for this function:

◆ testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues()

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

userProvider

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

Definition at line 141 of file ilMailTemplateContextTest.php.

References $context, $lng, getAnonymousTemplateContext(), and OrgUnit\User\ilOrgUnitUser\getUserId().

145  : void {
146  $ouService = $this->getMockBuilder(OrgUnitUserService::class)
147  ->disableOriginalConstructor()
148  ->setMethods(['getUsers',])
149  ->getMock();
150 
151  $lng = $this->getMockBuilder(ilLanguage::class)
152  ->disableOriginalConstructor()
153  ->setMethods(['txt', 'loadLanguageModule',])
154  ->getMock();
155 
156  $envHelper = $this->getMockBuilder(ilMailEnvironmentHelper::class)
157  ->disableOriginalConstructor()
158  ->setMethods(['getClientId', 'getHttpPath',])
159  ->getMock();
160 
161  $lngHelper = $this->getMockBuilder(ilMailLanguageHelper::class)
162  ->disableOriginalConstructor()
163  ->setMethods(['getLanguageByIsoCode', 'getCurrentLanguage',])
164  ->getMock();
165 
166  $userHelper = $this->getMockBuilder(ilMailUserHelper::class)
167  ->disableOriginalConstructor()
168  ->setMethods(['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 = $this->logicalAnd(...array_map(function (ilOrgUnitUser $user) {
179  return $this->contains($user->getUserId());
180  }, $superiors));
181 
182  $firstAndLastnames = array_map(function (ilOrgUnitUser $user, int $key) {
183  return "PhpSup{$key} UnitSup{$key}";
184  }, $superiors, array_keys($superiors));
185 
186  $userHelper->expects($this->atLeastOnce())->method('getUsernameMapForIds')
187  ->with($expectedIdsConstraint)
188  ->willReturn($firstAndLastnames);
189 
191  $ouService,
192  $envHelper,
193  $userHelper,
194  $lngHelper
195  );
196 
197  $placeholderResolver = new ilMailTemplatePlaceholderResolver($context, implode('', [
198  '[MAIL_SALUTATION]',
199  '[FIRST_NAME]',
200  '[LAST_NAME]',
201  '[LOGIN]',
202  '[TITLE]',
203  '[FIRSTNAME_LASTNAME_SUPERIOR]',
204  '[ILIAS_URL]',
205  '[CLIENT_NAME]',
206  ]));
207 
208  $replaceMessage = $placeholderResolver->resolve($user);
209 
210  $this->assertStringContainsString('###Dr. Ing###', $replaceMessage);
211  $this->assertStringContainsString('###phpunit###', $replaceMessage);
212  $this->assertStringContainsString('###Unit###', $replaceMessage);
213  $this->assertStringContainsString('###PHP###', $replaceMessage);
214  $this->assertStringContainsString('###phpunit_client###', $replaceMessage);
215  $this->assertStringContainsString('###http_ilias###', $replaceMessage);
216  $this->assertStringContainsString('mail_salutation_' . $user->getGender(), $replaceMessage);
217 
218  foreach ($firstAndLastnames as $firstAndLastname) {
219  $this->assertStringContainsString($firstAndLastname, $replaceMessage);
220  }
221  }
$context
Definition: webdav.php:26
$lng
Class ilMailTemplatePlaceholderResolver.
getAnonymousTemplateContext(OrgUnitUserService $orgUnitUserService, ilMailEnvironmentHelper $envHelper, ilMailUserHelper $usernameHelper, ilMailLanguageHelper $languageHelper)
+ Here is the call graph for this function:

◆ userProvider()

ilMailTemplateContextTest::userProvider ( )
Returns
array
Exceptions
ReflectionException

Definition at line 85 of file ilMailTemplateContextTest.php.

References generateOrgUnitUsers().

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  ->setMethods([
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  ->setMethods(['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  }
+ Here is the call graph for this function:

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