ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ILIAS\ResourceStorage\Resource\CollectionTest Class Reference

Class CollectionTest. More...

+ Inheritance diagram for ILIAS\ResourceStorage\Resource\CollectionTest:
+ Collaboration diagram for ILIAS\ResourceStorage\Resource\CollectionTest:

Public Member Functions

 testCreateCollection ()
 
 testGetCollectionOfUser ()
 
 testIsIn ()
 
 testAddAndRemove ()
 
 testDuplicates ()
 
 testRidCache ()
 
- Public Member Functions inherited from ILIAS\ResourceStorage\AbstractTestBase
 getDummyStream ()
 

Data Fields

 $collection_builder
 
PHPUnit Framework MockObject Stub $preloader
 
 $collections
 
const DUMMY_RCID = 'dummy-rcid'
 
- Data Fields inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
MockObject $flavour_repository
 

Protected Member Functions

 setUp ()
 @inheritDoc More...
 
 arrayAsGenerator (array $array)
 
- 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)
 

Protected Attributes

CollectionIdentificationGenerator $rcid_generator
 
- 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

Class CollectionTest.

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 37 of file CollectionTest.php.

Member Function Documentation

◆ arrayAsGenerator()

ILIAS\ResourceStorage\Resource\CollectionTest::arrayAsGenerator ( array  $array)
protected

Definition at line 274 of file CollectionTest.php.

274 : \Generator
275 {
276 foreach ($array as $item) {
277 yield $item;
278 }
279 }

◆ setUp()

ILIAS\ResourceStorage\Resource\CollectionTest::setUp ( )
protected

@inheritDoc

Reimplemented from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase.

Definition at line 57 of file CollectionTest.php.

57 : void
58 {
60 $this->rcid_generator = new DummyIDGenerator(self::DUMMY_RCID);
61
62 $this->collection_builder = new CollectionBuilder(
63 $this->collection_repository,
64 new Subject(),
65 $this->rcid_generator
66 );
67
68 $this->preloader = $this->createStub(RepositoryPreloader::class);
69
70 $this->resource_builder = new ResourceBuilder(
71 $this->storage_handler_factory,
72 $this->repositories,
73 $this->locking,
74 $this->stream_access
75 );
76
77 $this->collections = new Collections(
78 $this->resource_builder,
79 $this->collection_builder,
80 $this->preloader,
81 new Subject()
82 );
83 }

References setUp().

+ Here is the call graph for this function:

◆ testAddAndRemove()

ILIAS\ResourceStorage\Resource\CollectionTest::testAddAndRemove ( )

Definition at line 156 of file CollectionTest.php.

156 : void
157 {
158 $collection = new ResourceCollection(
159 new ResourceCollectionIdentification(self::DUMMY_RCID),
161 ''
162 );
163
164 $this->assertSame(self::DUMMY_RCID, $collection->getIdentification()->serialize());
165 $this->assertSame(ResourceCollection::NO_SPECIFIC_OWNER, $collection->getOwner());
166 $this->assertFalse($collection->hasSpecificOwner());
167 $this->assertSame('default', $collection->getTitle());
168
169 $rid_one = new ResourceIdentification('rid_one');
170 $rid_two = new ResourceIdentification('rid_two');
171
172 $this->assertSame(0, $collection->count());
173
174 $collection->add($rid_one);
175 $this->assertTrue($collection->isIn($rid_one));
176 $this->assertSame(1, $collection->count());
177
178 $collection->add($rid_two);
179 $this->assertTrue($collection->isIn($rid_one));
180 $this->assertTrue($collection->isIn($rid_two));
181 $this->assertSame(2, $collection->count());
182
183 $collection->remove($rid_one);
184 $this->assertFalse($collection->isIn($rid_one));
185 $this->assertTrue($collection->isIn($rid_two));
186 $this->assertSame(1, $collection->count());
187
188 $collection->remove($rid_two);
189 $this->assertFalse($collection->isIn($rid_one));
190 $this->assertFalse($collection->isIn($rid_two));
191 $this->assertSame(0, $collection->count());
192
193 $collection->clear();
194 $this->assertFalse($collection->isIn($rid_one));
195 $this->assertFalse($collection->isIn($rid_two));
196 $this->assertSame(0, $collection->count());
197 }

References ILIAS\ResourceStorage\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

◆ testCreateCollection()

ILIAS\ResourceStorage\Resource\CollectionTest::testCreateCollection ( )

Definition at line 85 of file CollectionTest.php.

85 : void
86 {
87 $identifiation = $this->rcid_generator->getUniqueResourceCollectionIdentification();
88 $this->collection_repository->expects($this->atLeastOnce())->method('blank')->with($identifiation)->willReturn(
89 new ResourceCollection($identifiation, -1, '')
90 );
91
92 $id = $this->collections->id();
93
94 $this->assertInstanceOf(ResourceCollectionIdentification::class, $id);
95 $this->assertNotInstanceOf(MockObject::class, $id);
96 $this->assertSame(self::DUMMY_RCID, $id->serialize());
97 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23

References $id.

◆ testDuplicates()

ILIAS\ResourceStorage\Resource\CollectionTest::testDuplicates ( )

Definition at line 199 of file CollectionTest.php.

199 : void
200 {
201 $rid = new ResourceIdentification('rid');
202 $same_rid = new ResourceIdentification('rid');
203
204 $collection = new ResourceCollection(
205 new ResourceCollectionIdentification(self::DUMMY_RCID),
207 ''
208 );
209 $collection->add($rid);
210 $collection->add($same_rid);
211
212 $this->assertCount(1, $collection->getResourceIdentifications());
213 }

References ILIAS\ResourceStorage\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

◆ testGetCollectionOfUser()

ILIAS\ResourceStorage\Resource\CollectionTest::testGetCollectionOfUser ( )

Definition at line 99 of file CollectionTest.php.

99 : void
100 {
101 $identifiation = $this->rcid_generator->getUniqueResourceCollectionIdentification();
102 $this->collection_repository->expects($this->atLeastOnce())->method('blank')->with($identifiation)->willReturn(
103 new ResourceCollection($identifiation, 42, '')
104 );
105
106 $id = $this->collections->id($identifiation->serialize());
107
108 $collection = $this->collections->get($id, 42);
109
110 $this->assertInstanceOf(ResourceCollection::class, $collection);
111 $this->assertNotInstanceOf(MockObject::class, $collection);
112 $this->assertSame(self::DUMMY_RCID, $collection->getIdentification()->serialize());
113 $this->assertSame([], $collection->getResourceIdentifications());
114 }

References $id.

◆ testIsIn()

ILIAS\ResourceStorage\Resource\CollectionTest::testIsIn ( )

Definition at line 116 of file CollectionTest.php.

116 : void
117 {
118 $collection = new ResourceCollection(new ResourceCollectionIdentification(self::DUMMY_RCID), 42, '');
119
120 $this->assertSame(self::DUMMY_RCID, $collection->getIdentification()->serialize());
121 $this->assertSame(42, $collection->getOwner());
122 $this->assertTrue($collection->hasSpecificOwner());
123 $this->assertSame('default', $collection->getTitle());
124
125 $rid_one = new ResourceIdentification('rid_one');
126 $rid_two = new ResourceIdentification('rid_two');
127 $rid_three = new ResourceIdentification('rid_three');
128
129 $this->assertSame(0, $collection->count());
130
131 $collection->add($rid_one);
132 $this->assertTrue($collection->isIn($rid_one));
133 $this->assertFalse($collection->isIn($rid_two));
134 $this->assertFalse($collection->isIn($rid_three));
135 $this->assertSame(1, $collection->count());
136
137 $collection->add($rid_two);
138 $this->assertTrue($collection->isIn($rid_one));
139 $this->assertTrue($collection->isIn($rid_two));
140 $this->assertFalse($collection->isIn($rid_three));
141 $this->assertSame(2, $collection->count());
142
143 $collection->add($rid_three);
144 $this->assertTrue($collection->isIn($rid_one));
145 $this->assertTrue($collection->isIn($rid_two));
146 $this->assertTrue($collection->isIn($rid_three));
147 $this->assertSame(3, $collection->count());
148
149 $collection->clear();
150 $this->assertFalse($collection->isIn($rid_one));
151 $this->assertFalse($collection->isIn($rid_two));
152 $this->assertFalse($collection->isIn($rid_three));
153 $this->assertSame(0, $collection->count());
154 }

◆ testRidCache()

ILIAS\ResourceStorage\Resource\CollectionTest::testRidCache ( )

Definition at line 216 of file CollectionTest.php.

216 : void
217 {
218 $resource_collection_identification = new ResourceCollectionIdentification(self::DUMMY_RCID);
219 $rid_one = new ResourceIdentification('rid_one');
220 $rid_two = new ResourceIdentification('rid_two');
221 $rid_three = new ResourceIdentification('rid_three');
222
223 $collections_service = new Collections(
224 $this->resource_builder,
225 $this->collection_builder,
226 $this->preloader,
227 new Subject()
228 );
229
230 $this->collection_repository
231 ->expects($this->once())
232 ->method('existing')
233 ->with($resource_collection_identification)
234 ->willReturn(
235 new ResourceCollection($resource_collection_identification, -1, 'title')
236 );
237
238 $collection = $collections_service->get(
239 $resource_collection_identification
240 );
241 $this->assertCount(0, $collection->getResourceIdentifications());
242
243 $collection->add($rid_one);
244 $collection->add($rid_two);
245 $collection->add($rid_three);
246
247 $this->assertCount(3, $collection->getResourceIdentifications());
248
249 $collections_service->store($collection);
250 $consecutive = [
251 $rid_one,
252 $rid_two,
253 $rid_three
254 ];
255 $this->resource_repository
256 ->expects($this->exactly(3))
257 ->method('has')
258 ->willReturnCallback(
259 function ($rid) use (&$consecutive): true {
260 $expected = array_shift($consecutive);
261 $this->assertEquals($expected, $rid);
262 return true;
263 }
264 );
265
266 $collection = $collections_service->get(
267 $resource_collection_identification
268 );
269
270 $this->assertCount(3, $collection->getResourceIdentifications());
271 }

Field Documentation

◆ $collection_builder

ILIAS\ResourceStorage\Resource\CollectionTest::$collection_builder

Definition at line 42 of file CollectionTest.php.

◆ $collections

ILIAS\ResourceStorage\Resource\CollectionTest::$collections

Definition at line 51 of file CollectionTest.php.

◆ $preloader

PHPUnit Framework MockObject Stub ILIAS\ResourceStorage\Resource\CollectionTest::$preloader

Definition at line 47 of file CollectionTest.php.

◆ $rcid_generator

CollectionIdentificationGenerator ILIAS\ResourceStorage\Resource\CollectionTest::$rcid_generator
protected

Definition at line 54 of file CollectionTest.php.

◆ DUMMY_RCID

const ILIAS\ResourceStorage\Resource\CollectionTest::DUMMY_RCID = 'dummy-rcid'

Definition at line 52 of file CollectionTest.php.


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