67 : void
68 {
69 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
70 $access = $this->getMockBuilder(ilAccessHandler::class)->getMock();
71 $statement = $this->getMockBuilder(ilDBStatement::class)->disableOriginalConstructor()->getMock();
72 $incident = $this->getMockBuilder(Incident::class)->disableOriginalConstructor()->getMock();
73
74 $ref_called = 0;
75 $type_called = 0;
76 $references_of = $this->
expectCall(383, [987], $ref_called);
77 $type_of = $this->
expectCall(987, $type, $type_called);
78
79 $database->expects(self::once())->method(
'queryF')->with(
'SELECT obj_fi FROM qpl_questions WHERE question_id = %s', [
ilDBConstants::T_INTEGER], [383])->willReturn($statement);
80 $database->expects(self::once())->method('fetchAssoc')->with($statement)->willReturn(['obj_fi' => '383']);
81
82 $incident->expects(self::once())->method('any')->willReturnCallback(function (callable $call_me, array $ref_ids): bool {
83 $this->assertEquals([987], $ref_ids);
84 return $call_me(987);
85 });
86
87 if (null === $requires_permission) {
88 $access->expects(self::never())->method('checkAccess');
89 } else {
90 $access->expects(self::once())->method('checkAccess')->with($requires_permission, '', 987)->willReturn($permitted);
91 }
92
93
94 $instance = new AccessFileUploadPreview($database, $access, $incident, $references_of, $type_of);
95 $result = $instance->isPermitted('http://my-ilias/assessment/qst_preview/123/383/fileuploads/my-file.pdf');
96 $this->assertTrue($result->isOk());
97 $this->assertSame($permitted, $result->value());
98
99 $this->assertSame(1, $ref_called);
100 $this->assertSame(1, $type_called);
101 }
expectCall($expected, $return, &$called)