ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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
 
MockObject $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 279 of file CollectionTest.php.

279 : \Generator
280 {
281 foreach ($array as $item) {
282 yield $item;
283 }
284 }

Referenced by ILIAS\ResourceStorage\Resource\CollectionTest\testGetCollectionOfUser().

+ Here is the caller graph for this function:

◆ setUp()

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

@inheritDoc

Reimplemented from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase.

Definition at line 56 of file CollectionTest.php.

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

◆ testAddAndRemove()

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

Definition at line 161 of file CollectionTest.php.

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

References ILIAS\ResourceStorage\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

◆ testCreateCollection()

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

Definition at line 86 of file CollectionTest.php.

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

References $id.

◆ testDuplicates()

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

Definition at line 204 of file CollectionTest.php.

204 : void
205 {
206 $rid = new ResourceIdentification('rid');
207 $same_rid = new ResourceIdentification('rid');
208
209 $collection = new ResourceCollection(
210 new ResourceCollectionIdentification(self::DUMMY_RCID),
212 ''
213 );
214 $collection->add($rid);
215 $collection->add($same_rid);
216
217 $this->assertCount(1, $collection->getResourceIdentifications());
218 }

References ILIAS\ResourceStorage\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

◆ testGetCollectionOfUser()

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

Definition at line 100 of file CollectionTest.php.

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

References $id, and ILIAS\ResourceStorage\Resource\CollectionTest\arrayAsGenerator().

+ Here is the call graph for this function:

◆ testIsIn()

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

Definition at line 121 of file CollectionTest.php.

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

◆ testRidCache()

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

Definition at line 221 of file CollectionTest.php.

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

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 50 of file CollectionTest.php.

◆ $preloader

MockObject ILIAS\ResourceStorage\Resource\CollectionTest::$preloader

Definition at line 46 of file CollectionTest.php.

◆ $rcid_generator

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

Definition at line 53 of file CollectionTest.php.

◆ DUMMY_RCID

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

Definition at line 51 of file CollectionTest.php.


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