ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilCertificateDownloadValidatorTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 {
23  public function testValidationSucceedsAndReturnsTrue(): void
24  {
25  $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
26  ->disableOriginalConstructor()
27  ->getMock();
28 
29 
30  $userCertificateRepository->method('fetchActiveCertificate');
31 
32  $accessValidator = new ilCertificateUserCertificateAccessValidator($userCertificateRepository);
33 
34  $activeValidator = $this->getMockBuilder(ilCertificateActiveValidator::class)
35  ->disableOriginalConstructor()
36  ->getMock();
37 
38  $activeValidator->method('validate')
39  ->willReturn(true);
40 
41  $validator = new ilCertificateDownloadValidator($accessValidator, $activeValidator);
42 
43  $result = $validator->isCertificateDownloadable(100, 100);
44 
45  $this->assertTrue($result);
46  }
47 
49  {
50  $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
51  ->disableOriginalConstructor()
52  ->getMock();
53 
54  $userCertificateRepository
55  ->expects($this->never())
56  ->method('fetchActiveCertificate');
57 
58  $accessValidator = new ilCertificateUserCertificateAccessValidator($userCertificateRepository);
59 
60  $activeValidator = $this->getMockBuilder(ilCertificateActiveValidator::class)
61  ->disableOriginalConstructor()
62  ->getMock();
63 
64  $activeValidator
65  ->method('validate')
66  ->willReturn(false);
67 
68  $validator = new ilCertificateDownloadValidator($accessValidator, $activeValidator);
69 
70  $result = $validator->isCertificateDownloadable(100, 100);
71 
72  $this->assertFalse($result);
73  }
74 
76  {
77  $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
78  ->disableOriginalConstructor()
79  ->getMock();
80 
81  $userCertificateRepository
82  ->expects($this->once())
83  ->method('fetchActiveCertificate')
84  ->willThrowException(new ilRpcClientException('Client not active'));
85 
86  $accessValidator = new ilCertificateUserCertificateAccessValidator($userCertificateRepository);
87 
88  $activeValidator = $this->getMockBuilder(ilCertificateActiveValidator::class)
89  ->disableOriginalConstructor()
90  ->getMock();
91 
92  $activeValidator
93  ->method('validate')
94  ->willReturn(true);
95 
96  $validator = new ilCertificateDownloadValidator($accessValidator, $activeValidator);
97 
98  $result = $validator->isCertificateDownloadable(100, 100);
99 
100  $this->assertFalse($result);
101  }
102 }
Validates if an active certificate is stored in the database and can be downloaded by the user...
Class ilRpcClientException.