298 {
300
302 ->expects($this->any())
303 ->method('txt')
304 ->willReturn('translation');
305
307
308 $document = $this
309 ->getMockBuilder(\ilTermsOfServiceDocument::class)
310 ->disableOriginalConstructor()
311 ->getMock();
312
313 $document
314 ->expects($this->never())
315 ->method('save');
316
317 $document
318 ->expects($this->never())
319 ->method('attachCriterion');
320
321 $criterionAssignment = $this
322 ->getMockBuilder(\ilTermsOfServiceDocumentCriterionAssignment::class)
323 ->disableOriginalConstructor()
324 ->setMethods(['getId', 'getCriterionId', 'getCriterionValue'])
325 ->getMock();
326
327 $criterionAssignment
328 ->expects($this->any())
329 ->method('getId')
330 ->willReturn(1);
331
332 $criterionAssignment
333 ->expects($this->any())
334 ->method('getCriterionId')
335 ->willReturn('usr_global_role');
336
337 $criterionAssignment
338 ->expects($this->any())
339 ->method('getCriterionValue')
341
342 $criterionTypeFactory = $this
343 ->getMockBuilder(\ilTermsOfServiceCriterionTypeFactoryInterface::class)
344 ->getMock();
345
346 $criterionType1 = $this
347 ->getMockBuilder(\ilTermsOfServiceCriterionType::class)
348 ->getMock();
349
350 $criterionType1
351 ->expects($this->any())
352 ->method('getTypeIdent')
353 ->willReturn('dummy1');
354
355 $criterionType1
356 ->expects($this->any())
357 ->method('ui')
358 ->willReturn($this->getMockBuilder(\ilTermsOfServiceCriterionTypeGUI::class)->getMock());
359
360 $criterionType2 = $this
361 ->getMockBuilder(\ilTermsOfServiceCriterionType::class)
362 ->getMock();
363
364 $criterionType2
365 ->expects($this->any())
366 ->method('getTypeIdent')
367 ->willReturn('dummy2');
368
369 $criterionTypeGui2 = $this->getMockBuilder(\ilTermsOfServiceCriterionTypeGUI::class)->getMock();
370
371 $criterionTypeGui2
372 ->expects($this->any())
373 ->method('getConfigByForm')
374 ->willReturn($criterionAssignment->getCriterionValue());
375
376 $criterionType2
377 ->expects($this->any())
378 ->method('ui')
379 ->willReturn($criterionTypeGui2);
380
381 $criterionTypeFactory
382 ->expects($this->
once())
383 ->method('getTypesByIdentMap')
384 ->willReturn([
385 $criterionType1, $criterionType2
386 ]);
387
388 $criterionTypeFactory
389 ->expects($this->exactly(2))
390 ->method('findByTypeIdent')
391 ->willReturnOnConsecutiveCalls(
393 $criterionType1
394 );
395
396 $anotherCriterionAssignment = $this
397 ->getMockBuilder(\ilTermsOfServiceDocumentCriterionAssignment::class)
398 ->disableOriginalConstructor()
399 ->setMethods(['getId', 'getCriterionId', 'getCriterionValue'])
400 ->getMock();
401
402 $anotherCriterionAssignment
403 ->expects($this->any())
404 ->method('getId')
405 ->willReturn(2);
406
407 $anotherCriterionAssignment
408 ->expects($this->any())
409 ->method('getCriterionId')
410 ->willReturn('usr_global_role');
411
412 $anotherCriterionAssignment
413 ->expects($this->any())
414 ->method('getCriterionValue')
416
417 $document
418 ->expects($this->
once())
419 ->method('criteria')
420 ->willReturn([$anotherCriterionAssignment]);
421
423 ->getMockBuilder(\ilObjUser::class)
424 ->disableOriginalConstructor()
425 ->setMethods(['getId'])
426 ->getMock();
427
429 ->expects($this->any())
430 ->method('getId')
431 ->willReturn(6);
432
433 $form = $this->getMockBuilder(\ilTermsOfServiceCriterionFormGUI::class)
434 ->setConstructorArgs([
435 $document, $criterionAssignment, $criterionTypeFactory,
$user,
436 'action', 'save', 'cancel'
437 ])
438 ->setMethods(['checkInput'])
439 ->getMock();
440
442 ->expects($this->exactly(2))
443 ->method('checkInput')
444 ->willReturn(true);
445
447 'criterion' => $criterionType1->getTypeIdent()
448 ];
449
450 $form->setCheckInputCalled(
true);
451
452 $this->assertFalse(
454 'Failed asserting form cannot be saved selected criterion type was not found'
455 );
456 $this->assertTrue(
$form->hasTranslatedError());
457 $this->assertNotEmpty(
$form->getTranslatedError());
458
459 $this->assertFalse(
461 'Failed asserting form cannot be saved selected criterion type was already assigned to document'
462 );
463 $this->assertTrue(
$form->hasTranslatedError());
464 $this->assertNotEmpty(
$form->getTranslatedError());
465 }
setGlobalVariable(string $name, $value)
Class ilTermsOfServiceCriterionConfig.
Class ilTermsOfServiceCriterionTypeNotFoundException.
once($eventName, callable $callBack, $priority=100)
Subscribe to an event exactly once.
if(isset($_POST['submit'])) $form