/** * test add, modify and delete elements from collection * * @param Collection $collection * @dataProvider exampleCollectionObject * @requires exampleCollection */ public function testElementCRUD($collection) { $collection->addElement('some new element'); $this->assertEquals(10, $collection->count()); $this->assertEquals('some new element', $collection->get(9)); $collection->delete(3); $this->assertEquals(9, $collection->count()); $this->assertEquals('some new element', $collection->get(8)); $collection->addElement('some new element 2'); $this->assertEquals('some new element 2', $collection->get(9)); $collection->changeElement(0, 'changed lorem ipsum'); $this->assertEquals('changed lorem ipsum', $collection->getElement(0)); $collection->changeElement(7, 'new data', function ($index, $newData, $collection) { /** @var Collection $collection*/ $object = $collection->getElement($index); $object->setNewData($newData); return $object; }); $this->assertEquals('new data', $collection->getElement(7)->getNewData()); }