ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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 ()
 
 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
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.

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

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

◆ setUp()

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

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.

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

161  : void
162  {
163  $collection = new ResourceCollection(
164  new ResourceCollectionIdentification(self::DUMMY_RCID),
166  ''
167  );
168 
169  $this->assertEquals(self::DUMMY_RCID, $collection->getIdentification()->serialize());
170  $this->assertEquals(ResourceCollection::NO_SPECIFIC_OWNER, $collection->getOwner());
171  $this->assertFalse($collection->hasSpecificOwner());
172  $this->assertEquals('default', $collection->getTitle());
173 
174  $rid_one = new ResourceIdentification('rid_one');
175  $rid_two = new ResourceIdentification('rid_two');
176 
177  $this->assertEquals(0, $collection->count());
178 
179  $collection->add($rid_one);
180  $this->assertTrue($collection->isIn($rid_one));
181  $this->assertEquals(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->assertEquals(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->assertEquals(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->assertEquals(0, $collection->count());
197 
198  $collection->clear();
199  $this->assertFalse($collection->isIn($rid_one));
200  $this->assertFalse($collection->isIn($rid_two));
201  $this->assertEquals(0, $collection->count());
202  }

◆ testCreateCollection()

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

Definition at line 86 of file CollectionTest.php.

References $id.

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->assertEquals(self::DUMMY_RCID, $id->serialize());
98  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23

◆ testDuplicates()

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

Definition at line 204 of file CollectionTest.php.

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

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->assertEquals(1, count($collection->getResourceIdentifications()));
218  }

◆ testGetCollectionOfUser()

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

Definition at line 100 of file CollectionTest.php.

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

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->assertEquals(self::DUMMY_RCID, $collection->getIdentification()->serialize());
118  $this->assertEquals([], $collection->getResourceIdentifications());
119  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
+ 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->assertEquals(self::DUMMY_RCID, $collection->getIdentification()->serialize());
126  $this->assertEquals(42, $collection->getOwner());
127  $this->assertTrue($collection->hasSpecificOwner());
128  $this->assertEquals('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->assertEquals(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->assertEquals(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->assertEquals(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->assertEquals(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->assertEquals(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: