ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\ResourceStorage\Policy\FileNamePolicyTest Class Reference

Class FileNamePolicyTest. More...

+ Inheritance diagram for ILIAS\ResourceStorage\Policy\FileNamePolicyTest:
+ Collaboration diagram for ILIAS\ResourceStorage\Policy\FileNamePolicyTest:

Public Member Functions

 testDeniedFileEnding ()
 
 testValidFileEnding ()
 
- Public Member Functions inherited from ILIAS\ResourceStorage\AbstractTestBase
 getDummyStream ()
 

Protected Member Functions

 getResourceBuilder (string $denied_ending)
 
 getFileNamePolicy (string $denied_ending)
 
- Protected Member Functions inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
 setUp ()
 @inheritDoc More...
 
 mockResourceAndRevision (string $expected_file_name, string $expected_mime_type, int $expected_size, int $expected_version_number, int $expected_owner_id)
 
- Protected Member Functions inherited from ILIAS\ResourceStorage\AbstractTestBase
 setUp ()
 @inheritDoc More...
 
 getDummyUploadResult (string $file_name, string $mime_type, int $size)
 
 getDummyFileRevision (ResourceIdentification $id)
 

Additional Inherited Members

- Data Fields inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
MockObject $flavour_repository
 
- Protected Attributes inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
MockObject $revision
 
MockObject $information
 
 $upload_result
 
MockObject $information_repository
 
MockObject $resource_repository
 
MockObject $collection_repository
 
MockObject $revision_repository
 
MockObject $storage_handler
 
ResourceBuilder $resource_builder
 
MockObject $stakeholder_repository
 
MockObject $locking
 
MockObject $storage_handler_factory
 
MockObject $stream_access
 
Repositories $repositories
 
- Protected Attributes inherited from ILIAS\ResourceStorage\AbstractTestBase
DummyIDGenerator $id_generator
 
MockObject $db_mock
 

Detailed Description

Member Function Documentation

◆ getFileNamePolicy()

ILIAS\ResourceStorage\Policy\FileNamePolicyTest::getFileNamePolicy ( string  $denied_ending)
protected

Definition at line 42 of file FileNamePolicyTest.php.

42 : FileNamePolicy
43 {
44 return new class ($denied_ending) implements FileNamePolicy {
45 public function __construct(private string $denied_ending)
46 {
47 }
48
49 public function check(string $extension): bool
50 {
51 if ($this->denied_ending === $extension) {
52 throw new FileNamePolicyException('ERROR');
53 }
54 return true;
55 }
56
57 public function isValidExtension(string $extension): bool
58 {
59 return $this->denied_ending !== $extension;
60 }
61
62 public function isBlockedExtension(string $extension): bool
63 {
64 return $this->denied_ending === $extension;
65 }
66
67 public function prepareFileNameForConsumer(string $filename_with_extension): string
68 {
69 return $filename_with_extension;
70 }
71 };
72 }
__construct()
Constructor setup ILIAS global object @access public.
Definition: class.ilias.php:76

References ILIAS\__construct(), and ILIAS\Refinery\check().

Referenced by ILIAS\ResourceStorage\Policy\FileNamePolicyTest\getResourceBuilder().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getResourceBuilder()

ILIAS\ResourceStorage\Policy\FileNamePolicyTest::getResourceBuilder ( string  $denied_ending)
protected

Definition at line 30 of file FileNamePolicyTest.php.

30 : ResourceBuilder
31 {
32 $policy = $this->getFileNamePolicy($denied_ending);
33 return new ResourceBuilder(
34 $this->storage_handler_factory,
35 $this->repositories,
36 $this->locking,
37 $this->stream_access,
38 $policy
39 );
40 }

References ILIAS\ResourceStorage\Policy\FileNamePolicyTest\getFileNamePolicy().

Referenced by ILIAS\ResourceStorage\Policy\FileNamePolicyTest\testDeniedFileEnding(), and ILIAS\ResourceStorage\Policy\FileNamePolicyTest\testValidFileEnding().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ testDeniedFileEnding()

ILIAS\ResourceStorage\Policy\FileNamePolicyTest::testDeniedFileEnding ( )

Definition at line 74 of file FileNamePolicyTest.php.

74 : void
75 {
76 $denied_ending = 'xml';
77 $resource_builder = $this->getResourceBuilder($denied_ending);
78
79 // EXPECTED VALUES
80 $expected_file_name = 'info.' . $denied_ending;
81
82 // MOCK
83 [$upload_result, $info_resolver, $identification] = $this->mockResourceAndRevision(
84 $expected_file_name,
85 "",
86 0,
87 1,
88 0
89 );
90
91 // RUN
92 $resource = $resource_builder->new(
94 $info_resolver
95 );
96
97 $this->expectException(FileNamePolicyException::class);
98 $resource_builder->store($resource);
99 }
mockResourceAndRevision(string $expected_file_name, string $expected_mime_type, int $expected_size, int $expected_version_number, int $expected_owner_id)
new(UploadResult $result, InfoResolver $info_resolver, ResourceType $type=ResourceType::SINGLE_FILE)
@inheritDoc
store(StorableResource $resource)
@description after you have modified a resource, you can store it here

References ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase\$resource_builder, ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase\$upload_result, ILIAS\ResourceStorage\Policy\FileNamePolicyTest\getResourceBuilder(), ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase\mockResourceAndRevision(), ILIAS\ResourceStorage\Resource\ResourceBuilder\new(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\store().

+ Here is the call graph for this function:

◆ testValidFileEnding()

ILIAS\ResourceStorage\Policy\FileNamePolicyTest::testValidFileEnding ( )

Definition at line 101 of file FileNamePolicyTest.php.

101 : void
102 {
103 $denied_ending = 'xml';
104 $resource_builder = $this->getResourceBuilder($denied_ending);
105
106 // EXPECTED VALUES
107 $expected_file_name = 'info.pdf';
108
109 // MOCK
110 [$upload_result, $info_resolver, $identification] = $this->mockResourceAndRevision(
111 $expected_file_name,
112 "",
113 0,
114 1,
115 0
116 );
117
118 // RUN
119 $resource = $resource_builder->new(
121 $info_resolver
122 );
123
124 $resource_builder->store($resource);
125 }

References ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase\$resource_builder, ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase\$upload_result, ILIAS\ResourceStorage\Policy\FileNamePolicyTest\getResourceBuilder(), ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase\mockResourceAndRevision(), ILIAS\ResourceStorage\Resource\ResourceBuilder\new(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\store().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: