223 : void
224 {
225 $dataGatewayFactory = $this->getMockBuilder(ilTermsOfServiceDataGatewayFactory::class)->getMock();
226 $dataGateway = $this->createMock(ilTermsOfServiceAcceptanceDataGateway::class);
227
229 $entity1 = $entity1
230 ->withId(4711)
231 ->withSerializedCriteria(
233 '{"id":"usr_language","value":{"lng":"de"}}',
234 '{"id":"usr_global_role","value":{"role_id":4711}}'
235 ]) . ']'))->toJson()
236 );
237
238 $entity2 = $entity1->withId(0);
239
240 $dataGateway
241 ->expects($this->exactly(3))
242 ->method('loadCurrentAcceptanceOfUser')
243 ->willReturnOnConsecutiveCalls($entity1, $entity2, $entity1);
244 $dataGatewayFactory
245 ->method('getByName')
246 ->willReturn($dataGateway);
247
248 $tos_object = $this->getMockBuilder(ilObjTermsOfService::class)->disableOriginalConstructor()->getMock();
249 $tos_object->method('getStatus')->willReturn(true);
250 $tos_object->method('shouldReevaluateOnLogin')->willReturn(true);
251
252 $user = $this
253 ->getMockBuilder(ilObjUser::class)
254 ->disableOriginalConstructor()
255 ->onlyMethods(['getId', 'getLogin', 'isAnonymous', 'getAgreeDate'])
256 ->getMock();
257 $user
258 ->method('getId')
259 ->willReturn(4711);
260 $user
261 ->method('getLogin')
262 ->willReturn('phpunit');
263 $user
264 ->method('isAnonymous')
265 ->willReturn(false);
266 $user
267 ->method('getAgreeDate')
268 ->willReturn((
new ILIAS\Data\Factory())->clock()->system()->now()->format(
'Y-m-d H:i:s'));
269
270 $logger = $logger = $this
271 ->getMockBuilder(ilLogger::class)
272 ->disableOriginalConstructor()
273 ->getMock();
274
275 $document_evaluation = $this->createMock(ilTermsOfServiceDocumentEvaluation::class);
276 $document_evaluation->expects($this->exactly(4))
277 ->method('hasDocument')
278 ->willReturnOnConsecutiveCalls(true, false, true, true);
279 $document_evaluation->method('withContextUser')->with($user)->willReturn($document_evaluation);
280 $document_evaluation->expects($this->exactly(2))->method('evaluateDocument')
281 ->with($this->isInstanceOf(ilTermsOfServiceHistorizedDocument::class))
282 ->willReturnOnConsecutiveCalls(false, true);
283
285 $dataGatewayFactory,
286 $document_evaluation,
287 $this->createMock(ilTermsOfServiceCriterionTypeFactoryInterface::class),
288 $tos_object
289 );
290
291 $this->assertTrue($helper->hasToResignAcceptance($user, $logger));
292 $this->assertFalse($helper->hasToResignAcceptance($user, $logger));
293 $this->assertFalse($helper->hasToResignAcceptance($user, $logger));
294 $this->assertFalse($helper->hasToResignAcceptance($user, $logger));
295 }
Class ilTermsOfServiceAcceptanceHistoryCriteriaBag.
Class ChatMainBarProvider \MainMenu\Provider.