diff --git a/lib/classes/databox/descriptionStructure.php b/lib/classes/databox/descriptionStructure.php index 988322af6f..fdfce8d6c7 100644 --- a/lib/classes/databox/descriptionStructure.php +++ b/lib/classes/databox/descriptionStructure.php @@ -118,4 +118,11 @@ class databox_descriptionStructure implements IteratorAggregate { return isset($this->elements[$id]); } + + public function toArray() + { + return array_map(function ($element) { + return $element->toArray(); + }, array_values($this->elements)); + } } diff --git a/tests/classes/databox/databox_descriptionStructureTest.php b/tests/classes/databox/databox_descriptionStructureTest.php new file mode 100644 index 0000000000..e7c48efbcd --- /dev/null +++ b/tests/classes/databox/databox_descriptionStructureTest.php @@ -0,0 +1,27 @@ + 'value1', 'name2' => 'value2'); + + $element = $this->provideDataboxFieldMock(); + $element->expects($this->once()) + ->method('toArray') + ->will($this->returnValue($array)); + + $structure->add_element($element); + + $this->assertEquals(array($array), $structure->toArray()); + } + + private function provideDataboxFieldMock() + { + return $this->getMockBuilder('databox_field') + ->disableOriginalConstructor() + ->getMock(); + } +}