ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
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 70 of file ilMailTemplateContextTest.php.

Referenced by userProvider().

70  : array
71  {
72  $users = [];
73 
74  for ($i = 1; $i <= $amount; $i++) {
75  $user = $this->getMockBuilder(ilOrgUnitUser::class)
76  ->disableOriginalConstructor()
77  ->onlyMethods(['getUserId',])
78  ->getMock();
79  $user->expects($this->atLeastOnce())->method('getUserId')->willReturn($i);
80 
81  $users[$i] = $user;
82  }
83 
84  return $users;
85  }
+ 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  ): string {
62  return '';
63  }
64  };
65  }
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 144 of file ilMailTemplateContextTest.php.

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

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

References generateOrgUnitUsers().

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

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