17 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
29 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
30 $object1 = new \stdClass();
31 $object2 = new \stdClass();
32 $objectStorage->attach($object1);
33 $objectStorage->attach($object2,
'foo');
34 $this->assertEquals($objectStorage[$object1],
null);
35 $this->assertEquals($objectStorage[$object2],
'foo');
43 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
44 $object1 = new \stdClass();
45 $object2 = new \stdClass();
46 $objectStorage->attach($object1);
47 $objectStorage->attach($object2,
'foo');
48 $this->assertEquals(count($objectStorage), 2);
49 $objectStorage->detach($object1);
50 $this->assertEquals(count($objectStorage), 1);
51 $objectStorage->detach($object2);
52 $this->assertEquals(count($objectStorage), 0);
60 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
61 $object1 = new \stdClass();
62 $object2 = new \stdClass();
63 $objectStorage->offsetSet($object1,
'foo');
64 $this->assertEquals(count($objectStorage), 1);
65 $objectStorage[$object2] =
'bar';
66 $this->assertEquals(count($objectStorage), 2);
74 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
75 $object1 = new \stdClass();
76 $object2 = new \stdClass();
77 $objectStorage->attach($object1);
78 $objectStorage->attach($object2,
'foo');
79 $this->assertEquals(count($objectStorage), 2);
80 $objectStorage->offsetUnset($object2);
81 $this->assertEquals(count($objectStorage), 1);
82 $objectStorage->offsetUnset($object1);
83 $this->assertEquals(count($objectStorage), 0);
91 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
92 $object1 = new \stdClass();
93 $object2 = new \stdClass();
94 $objectStorage->attach($object1);
95 $objectStorage->attach($object2,
'foo');
96 $this->assertEquals(count($objectStorage), 2);
97 $objectStorage->offsetUnset(0);
98 $this->assertEquals(count($objectStorage), 1);
99 $objectStorage->offsetUnset(0);
100 $this->assertEquals(count($objectStorage), 0);
108 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
109 $object1 = new \stdClass();
110 $object2 = new \stdClass();
111 $objectStorage[$object1] =
'foo';
112 $objectStorage->attach($object2);
113 $this->assertEquals($objectStorage->offsetGet($object1),
'foo');
114 $this->assertEquals($objectStorage->offsetGet($object2),
null);
122 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
123 $object1 = new \stdClass();
124 $object2 = new \stdClass();
125 $objectStorage->attach($object1);
126 $objectStorage->attach($object2);
127 $this->assertSame($object1, $objectStorage->offsetGet(0));
128 $this->assertSame($object2, $objectStorage->offsetGet(1));
136 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
137 $object1 = new \stdClass();
138 $object2 = new \stdClass();
139 $objectStorage->attach($object1);
140 $this->assertEquals($objectStorage->offsetExists($object1),
true);
141 $this->assertEquals($objectStorage->offsetExists($object2),
false);
149 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
150 $objectStorage->attach(
new \stdClass());
151 $this->assertTrue($objectStorage->offsetExists(0));
152 $this->assertFalse($objectStorage->offsetExists(1));
160 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
161 $this->assertEquals($objectStorage->offsetExists(0),
false);
169 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
170 $this->assertEquals($objectStorage->offsetExists(
'0'),
false);
178 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
179 $object1 = new \stdClass();
180 $object2 = new \stdClass();
181 $object3 = new \stdClass();
182 $objectStorage->attach($object1, 42);
183 $objectStorage->attach($object2,
'foo');
184 $objectStorage->attach($object3, [
'bar',
'baz']);
185 $objectStorage->rewind();
186 $this->assertEquals($objectStorage->getInfo(), 42);
187 $objectStorage->next();
188 $this->assertEquals($objectStorage->getInfo(),
'foo');
189 $objectStorage->next();
190 $this->assertEquals($objectStorage->getInfo(), [
'bar',
'baz']);
198 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
199 $object1 = new \stdClass();
200 $object2 = new \stdClass();
201 $objectStorage->attach($object1);
202 $objectStorage->attach($object2,
'foo');
203 $objectStorage->rewind();
204 $objectStorage->setInfo(42);
205 $objectStorage->next();
206 $objectStorage->setInfo(
'bar');
207 $this->assertEquals($objectStorage[$object1], 42);
208 $this->assertEquals($objectStorage[$object2],
'bar');
216 $object1 = new \stdClass();
217 $object2 = new \stdClass();
218 $objectStorageA = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
219 $objectStorageA->attach($object1,
'foo');
220 $objectStorageB = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
221 $objectStorageB->attach($object1,
'bar');
222 $objectStorageB->attach($object2,
'baz');
223 $this->assertEquals(count($objectStorageB), 2);
224 $objectStorageB->removeAll($objectStorageA);
225 $this->assertEquals(count($objectStorageB), 1);
233 $object1 = new \stdClass();
234 $object2 = new \stdClass();
235 $objectStorageA = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
237 $objectStorageA->attach($object1,
'foo');
238 $objectStorageB = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
239 $objectStorageB->attach($object2,
'baz');
240 $this->assertEquals($objectStorageB->offsetExists($object1),
false);
241 $objectStorageB->addAll($objectStorageA);
242 $this->assertEquals($objectStorageB[$object1],
'foo');
243 $this->assertEquals($objectStorageB[$object2],
'baz');
251 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
252 $object1 = new \stdClass();
253 $object2 = new \stdClass();
254 $objectStorage->attach($object1,
'foo');
255 $objectStorage->attach($object2,
'bar');
256 $this->assertEquals([$object1, $object2], $objectStorage->toArray());
257 $this->assertEquals([$object1, $object2], $objectStorage->getArray());
265 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
266 $object1 = new \stdClass();
267 $object2 = new \stdClass();
268 $object3 = new \stdClass();
269 $objectStorage->attach($object1);
270 $objectStorage->attach($object2);
271 $objectStorage->attach($object3);
272 $this->assertFalse($objectStorage->isRelationDirty($object1));
273 $this->assertFalse($objectStorage->isRelationDirty($object2));
274 $this->assertFalse($objectStorage->isRelationDirty($object3));
282 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
283 $object1 = new \stdClass;
284 $object2 = new \stdClass;
285 $object3 = new \stdClass;
286 $objectStorage->attach($object1);
287 $objectStorage->attach($object2);
288 $objectStorage->detach($object2);
289 $objectStorage->attach($object3);
290 $this->assertFalse($objectStorage->isRelationDirty($object1));
291 $this->assertFalse($objectStorage->isRelationDirty($object3));
299 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
300 $object1 = new \stdClass;
301 $object2 = new \stdClass;
302 $objectStorage->attach($object1);
303 $objectStorage->attach($object2);
304 $clonedStorage = clone $objectStorage;
305 $objectStorage->removeAll($clonedStorage);
306 $objectStorage->attach($object1);
307 $objectStorage->attach($object2);
308 $this->assertFalse($objectStorage->isRelationDirty($object1));
309 $this->assertFalse($objectStorage->isRelationDirty($object2));
317 $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
318 $object1 = new \stdClass;
319 $object2 = new \stdClass;
320 $objectStorage->attach($object1);
321 $objectStorage->attach($object2);
322 $clonedStorage = clone $objectStorage;
323 $objectStorage->removeAll($clonedStorage);
324 $objectStorage->attach($object2);
325 $objectStorage->attach($object1);
326 $this->assertTrue($objectStorage->isRelationDirty($object1));
327 $this->assertTrue($objectStorage->isRelationDirty($object2));