public function testFromObject() { $this->assertEquals(ArrayUtils::fromObject(array()), array()); $this->assertEquals(ArrayUtils::fromObject(new \stdClass()), array()); $intKeysObject = new \stdClass(); $intKeysObject->{0} = 'a'; $intKeysObject->{1} = 'b'; $intKeysObject->{'2'} = 'c'; $intKeysObject->{'3'} = 'd'; $this->assertEquals(ArrayUtils::fromObject($intKeysObject), $this->_getArrayPreset('int_keys')); $associativeObject = new \stdClass(); $associativeObject->lorem = 'qwerty'; $associativeObject->ipsum = 'asd'; $associativeObject->dolor = 'qwe'; $associativeObject->sit = 'tl;dr'; $associativeObject->amet = 69; $this->assertEquals(ArrayUtils::fromObject($associativeObject), $this->_getArrayPreset('associative')); $item1 = new \stdClass(); $item1->id = 1; $item1->name = 'lorem'; $item1->categoryId = 5; $item1->date = '2013.07.08'; $item2 = new \stdClass(); $item2->id = 2; $item2->name = 'ipsum'; $item2->categoryId = 3; $item2->date = '2013.07.07'; $item3 = new \stdClass(); $item3->id = 5; $item3->name = 'dolor'; $item3->categoryId = 1; $item3->date = '2012.07.08'; $item4 = new \stdClass(); $item4->id = 6; $item4->name = 'sit'; $item4->categoryId = 3; $item4->date = '2013.12.08'; $item5 = new \stdClass(); $item5->id = 9; $item5->name = 'amet'; $item5->categoryId = 5; $item5->date = '2013.10.14'; $collection = new \stdClass(); $collection->{0} = $item1; $collection->{1} = $item2; $collection->{2} = $item3; $collection->{3} = $item4; $collection->{4} = $item5; $this->assertEquals(ArrayUtils::fromObject($collection), $this->_getArrayPreset('2D_collection_5')); $collectionNamed = new \stdClass(); $collectionNamed->lorem = $item1; $collectionNamed->ipsum = $item2; $collectionNamed->dolor = $item3; $collectionNamed->sit = $item4; $collectionNamed->amet = $item5; $this->assertEquals(ArrayUtils::fromObject($collectionNamed), $this->_getArrayPreset('2D_collection_5_named')); $collectionNamedOtherClass = new EmptyClass(); $collectionNamedOtherClass->lorem = $item1; $collectionNamedOtherClass->ipsum = $item2; $collectionNamedOtherClass->dolor = $item3; $collectionNamedOtherClass->sit = $item4; $collectionNamedOtherClass->amet = $item5; $this->assertEquals(ArrayUtils::fromObject($collectionNamedOtherClass), $this->_getArrayPreset('2D_collection_5_named')); $parentArray = array('key1' => 'val1', 'key2' => 'val2'); $this->assertEquals(ArrayUtils::fromObject($collectionNamedOtherClass, $parentArray), array_merge(array('key1' => 'val1', 'key2' => 'val2'), $this->_getArrayPreset('2D_collection_5_named'))); $this->assertEquals(ArrayUtils::fromObject($associativeObject, array(), array('lorem', 'ipsum')), array('lorem' => 'qwerty', 'ipsum' => 'asd')); $collectionArray = $this->_getArrayPreset('2D_collection_5'); $collectionArray = ArrayUtils::keyRemove($collectionArray, 'categoryId'); $collectionArray = ArrayUtils::keyRemove($collectionArray, 'date'); $collectionOfObjects = array($item1, $item2, $item3, $item4, $item5); $this->assertEquals(ArrayUtils::fromObject($collectionOfObjects, array(), array('id', 'name')), $collectionArray); $collectionArray = array(); foreach ($this->_getArrayPreset('2D_collection_5') as $item) { $collectionArray[] = new ToArrayClass($item['id'], $item['name'], $item['categoryId'], $item['date']); } $this->assertEquals(ArrayUtils::fromObject($collectionArray), $this->_getArrayPreset('2D_collection_5')); $collectionArray = array(); foreach ($this->_getArrayPreset('2D_collection_5') as $item) { $collectionArray[] = new ToArrayWrongClass($item['id'], $item['name'], $item['categoryId'], $item['date']); } $this->assertEquals(ArrayUtils::fromObject($collectionArray), $this->_getArrayPreset('2D_collection_5')); $someObj = new \stdClass(); $someObj->id = 45; $someObj->title = 'Lorem ipsum'; $this->assertEquals(array(123, 'title' => 'Lipsum.com', 'obj' => array('id' => 45, 'title' => 'Lorem ipsum'), 'enable' => false), ArrayUtils::fromObject(array(123, 'title' => 'Lipsum.com', 'obj' => $someObj, 'enable' => false))); }