1<?php declare(strict_types=1); 2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */ 3 4use ILIAS\UI\Factory; 5use ILIAS\UI\Renderer; 6use PHPUnit\Framework\MockObject\MockObject; 7use Psr\Http\Message\ServerRequestInterface; 8 9/** 10 * Class ilTermsOfServiceAcceptanceHistoryGUITest 11 * @author Michael Jansen <mjansen@databay.de> 12 */ 13class ilTermsOfServiceAcceptanceHistoryGUITest extends ilTermsOfServiceBaseTest 14{ 15 /** @var MockObject|ilTermsOfServiceTableDataProviderFactory */ 16 protected $tableDataProviderFactory; 17 18 /** @var MockObject|ilObjTermsOfService */ 19 protected $tos; 20 21 /** @var MockObject|ilGlobalPageTemplate */ 22 protected $tpl; 23 24 /** @var MockObject|ilCtrl */ 25 protected $ctrl; 26 27 /** @var MockObject|ilLanguage */ 28 protected $lng; 29 30 /** @var MockObject|ilRbacSystem */ 31 protected $rbacsystem; 32 33 /** @var MockObject|ilErrorHandling */ 34 protected $error; 35 36 /** @var MockObject|Factory */ 37 protected $uiFactory; 38 39 /** @var MockObject|Renderer */ 40 protected $uiRenderer; 41 42 /** @var MockObject|ServerRequestInterface */ 43 protected $request; 44 45 /** @var MockObject|ilTermsOfServiceCriterionTypeFactoryInterface */ 46 protected $criterionTypeFactory; 47 48 /** 49 * @throws ReflectionException 50 */ 51 public function setUp() : void 52 { 53 parent::setUp(); 54 55 $this->tos = $this->getMockBuilder(ilObjTermsOfService::class)->disableOriginalConstructor()->getMock(); 56 $this->criterionTypeFactory = $this->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)->disableOriginalConstructor()->getMock(); 57 $this->tpl = $this->getMockBuilder(ilGlobalPageTemplate::class)->disableOriginalConstructor()->getMock(); 58 $this->ctrl = $this->getMockBuilder(ilCtrl::class)->disableOriginalConstructor()->getMock(); 59 $this->lng = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock(); 60 $this->rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock(); 61 $this->error = $this->getMockBuilder(ilErrorHandling::class)->disableOriginalConstructor()->getMock(); 62 $this->request = $this->getMockBuilder(ServerRequestInterface::class)->disableOriginalConstructor()->getMock(); 63 $this->uiFactory = $this->getMockBuilder(Factory::class)->disableOriginalConstructor()->getMock(); 64 $this->uiRenderer = $this->getMockBuilder(Renderer::class)->disableOriginalConstructor()->getMock(); 65 $this->tableDataProviderFactory = $this->getMockBuilder(ilTermsOfServiceTableDataProviderFactory::class)->disableOriginalConstructor()->getMock(); 66 } 67 68 /** 69 * 70 */ 71 public function testAccessDeniedErrorIsRaisedWhenPermissionsAreMissing() : void 72 { 73 $this->ctrl 74 ->expects($this->any()) 75 ->method('getCmd') 76 ->willReturnOnConsecutiveCalls( 77 'showAcceptanceHistory' 78 ); 79 80 $this->rbacsystem 81 ->expects($this->any()) 82 ->method('checkAccess') 83 ->willReturn(false); 84 85 $this->error 86 ->expects($this->any()) 87 ->method('raiseError') 88 ->willThrowException(new ilException('no_permission')); 89 90 $gui = new ilTermsOfServiceAcceptanceHistoryGUI( 91 $this->tos, 92 $this->criterionTypeFactory, 93 $this->tpl, 94 $this->ctrl, 95 $this->lng, 96 $this->rbacsystem, 97 $this->error, 98 $this->request, 99 $this->uiFactory, 100 $this->uiRenderer, 101 $this->tableDataProviderFactory 102 ); 103 104 $this->expectException(ilException::class); 105 106 $gui->executeCommand(); 107 } 108} 109