ILIAS  release_8 Revision v8.19
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
 brutallyTrimHTML (string $html)
 
 setUp ()
 
 tearDown ()
 
 setGlobalVariable (string $name, $value)
 

Detailed Description

Member Function Documentation

◆ generateOrgUnitUsers()

ilMailTemplateContextTest::generateOrgUnitUsers ( int  $amount)
private
Exceptions
ReflectionException

Definition at line 71 of file ilMailTemplateContextTest.php.

References $i.

Referenced by userProvider().

71  : array
72  {
73  $users = [];
74 
75  for ($i = 1; $i <= $amount; $i++) {
76  $user = $this->getMockBuilder(ilOrgUnitUser::class)
77  ->disableOriginalConstructor()
78  ->onlyMethods(['getUserId',])
79  ->getMock();
80  $user->expects($this->atLeastOnce())->method('getUserId')->willReturn($i);
81 
82  $users[$i] = $user;
83  }
84 
85  return $users;
86  }
$i
Definition: metadata.php:41
+ Here is the caller graph for this function:

◆ getAnonymousTemplateContext()

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

Definition at line 30 of file ilMailTemplateContextTest.php.

References ILIAS\Survey\Mode\getId().

Referenced by testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues().

36  return new class ($orgUnitUserService, $envHelper, $usernameHelper, $languageHelper) extends ilMailTemplateContext {
37  public function getId(): string
38  {
39  return 'phpunuit';
40  }
41 
42  public function getTitle(): string
43  {
44  return 'phpunuit';
45  }
46 
47  public function getDescription(): string
48  {
49  return 'phpunuit';
50  }
51 
52  public function getSpecificPlaceholders(): array
53  {
54  return [];
55  }
56 
57  public function resolveSpecificPlaceholder(
58  string $placeholder_id,
59  array $context_parameters,
60  ilObjUser $recipient = null,
61  bool $html_markup = false
62  ): string {
63  return '';
64  }
65  };
66  }
Class ilMailTemplateContext.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ testGlobalPlaceholdersCanBeResolvedWithCorrespondingValues()

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

userProvider

Parameters
ilOrgUnitUser[]$superiors
Exceptions
ReflectionException

Definition at line 145 of file ilMailTemplateContextTest.php.

References $context, ILIAS\LTI\ToolProvider\$key, $lng, getAnonymousTemplateContext(), and OrgUnit\User\ilOrgUnitUser\getUserId().

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

◆ userProvider()

ilMailTemplateContextTest::userProvider ( )
Exceptions
ReflectionException

Definition at line 91 of file ilMailTemplateContextTest.php.

References generateOrgUnitUsers().

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

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