public function testBuildValue() { $child1 = $this->mockedNode(function ($element) { return $element['key1']; }); $child2 = $this->mockedNode(function ($element) { return $element['key2']; }); $child3 = $this->mockedNode(function ($element) { return $element['key1']; }); $child1->key(function () { return 'index1'; }); $child2->key(function () { return 'index2'; }); $child3->key(function () { return 'index3'; }); $this->treeBuilder->addChild($child1)->addChild($child2)->addChild($child3); $element = array('baseKey' => array('key1' => 'value1', 'key2' => 'value2')); $expected = array('index1' => 'value1', 'index2' => 'value2', 'index3' => 'value1'); $this->assertEquals($expected, $this->treeBuilder->buildValue($element)); }
public function testBuildValue() { $identity = function ($element) { return $element; }; $name = function ($element) { return $element['name']; }; $child1 = $this->mockedNode($identity, $name); $child2 = $this->mockedNode($identity, $name); $child1->key(function ($element) { return (int) $element['id']; }); $child2->key(function ($element) { return (int) $element['id'] + 10; }); $this->treeBuilder->addChild($child1)->addChild($child2); $element = array('baseKey' => array(array('id' => '1', 'name' => 'John'), array('id' => '2', 'name' => 'Kate'), array('id' => '3', 'name' => 'William'))); $expected = array(1 => 'John', 2 => 'Kate', 3 => 'William', 11 => 'John', 12 => 'Kate', 13 => 'William'); $this->assertEquals($expected, $this->treeBuilder->buildValue($element)); }