ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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
 
 $preloader
 
 $collections
 
const DUMMY_RCID = 'dummy-rcid'
 
- Data Fields inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
 $flavour_repository
 

Protected Member Functions

 setUp ()
 
 arrayAsGenerator (array $array)
 
- Protected Member Functions inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
 setUp ()
 
 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 ()
 
 getDummyUploadResult (string $file_name, string $mime_type, int $size)
 
 getDummyFileRevision (ResourceIdentification $id)
 

Protected Attributes

CollectionIdentificationGenerator $rcid_generator
 
- Protected Attributes inherited from ILIAS\ResourceStorage\AbstractBaseResourceBuilderTestCase
 $revision
 
 $information
 
 $upload_result
 
 $information_repository
 
 $resource_repository
 
 $collection_repository
 
 $revision_repository
 
 $storage_handler
 
ILIAS ResourceStorage Resource ResourceBuilder $resource_builder
 
 $stakeholder_repository
 
 $locking
 
 $storage_handler_factory
 
 $stream_access
 
Repositories $repositories
 
- Protected Attributes inherited from ILIAS\ResourceStorage\AbstractTestBase
ILIAS ResourceStorage DummyIDGenerator $id_generator
 
 $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 278 of file CollectionTest.php.

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

278  : \Generator
279  {
280  foreach ($array as $item) {
281  yield $item;
282  }
283  }
+ Here is the caller graph for this function:

◆ setUp()

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

Definition at line 55 of file CollectionTest.php.

55  : void
56  {
57  parent::setUp();
58  $this->rcid_generator = new DummyIDGenerator(self::DUMMY_RCID);
59 
60  $this->collection_builder = new CollectionBuilder(
61  $this->collection_repository,
62  new Subject(),
63  $this->rcid_generator
64  );
65 
66  $this->preloader = $this->getMockBuilder(RepositoryPreloader::class)
67  ->disableOriginalConstructor()
68  ->getMock();
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  }

◆ testAddAndRemove()

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

Definition at line 160 of file CollectionTest.php.

References ILIAS\Export\ImportHandler\Parser\NodeInfo\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

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

◆ testCreateCollection()

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

Definition at line 85 of file CollectionTest.php.

References $id.

85  : void
86  {
87  $identifiation = $this->rcid_generator->getUniqueResourceCollectionIdentification();
88  $this->collection_repository->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->assertEquals(self::DUMMY_RCID, $id->serialize());
97  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:24

◆ testDuplicates()

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

Definition at line 203 of file CollectionTest.php.

References ILIAS\Export\ImportHandler\Parser\NodeInfo\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

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

◆ testGetCollectionOfUser()

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

Definition at line 99 of file CollectionTest.php.

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

99  : void
100  {
101  $identifiation = $this->rcid_generator->getUniqueResourceCollectionIdentification();
102  $this->collection_repository->method('blank')->with($identifiation)->willReturn(
103  new ResourceCollection($identifiation, 42, '')
104  );
105 
106  $id = $this->collections->id($identifiation->serialize());
107 
108  $this->collection_repository->method('getResourceIdStrings')->with($identifiation)->willReturn(
109  $this->arrayAsGenerator([])
110  );
111 
112  $collection = $this->collections->get($id, 42);
113 
114  $this->assertInstanceOf(ResourceCollection::class, $collection);
115  $this->assertNotInstanceOf(MockObject::class, $collection);
116  $this->assertEquals(self::DUMMY_RCID, $collection->getIdentification()->serialize());
117  $this->assertEquals([], $collection->getResourceIdentifications());
118  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:24
+ Here is the call graph for this function:

◆ testIsIn()

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

Definition at line 120 of file CollectionTest.php.

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

◆ testRidCache()

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

Definition at line 220 of file CollectionTest.php.

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

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

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: