public function testBuildFinalFormTree()
{
$this->form->add($this->childForm);
$this->view->children['child'] = $this->childView;
$this->dataExtractor->expects($this->at(0))->method('extractConfiguration')->with($this->form)->will($this->returnValue(array('config' => 'foo')));
$this->dataExtractor->expects($this->at(1))->method('extractConfiguration')->with($this->childForm)->will($this->returnValue(array('config' => 'bar')));
$this->dataExtractor->expects($this->at(2))->method('extractDefaultData')->with($this->form)->will($this->returnValue(array('default_data' => 'foo')));
$this->dataExtractor->expects($this->at(3))->method('extractDefaultData')->with($this->childForm)->will($this->returnValue(array('default_data' => 'bar')));
$this->dataExtractor->expects($this->at(4))->method('extractSubmittedData')->with($this->form)->will($this->returnValue(array('submitted_data' => 'foo')));
$this->dataExtractor->expects($this->at(5))->method('extractSubmittedData')->with($this->childForm)->will($this->returnValue(array('submitted_data' => 'bar')));
$this->dataExtractor->expects($this->at(6))->method('extractViewVariables')->with($this->view)->will($this->returnValue(array('view_vars' => 'foo')));
$this->dataExtractor->expects($this->at(7))->method('extractViewVariables')->with($this->childView)->will($this->returnValue(array('view_vars' => 'bar')));
$this->dataCollector->collectConfiguration($this->form);
$this->dataCollector->collectDefaultData($this->form);
$this->dataCollector->collectSubmittedData($this->form);
$this->dataCollector->collectViewVariables($this->view);
$this->dataCollector->buildFinalFormTree($this->form, $this->view);
$this->assertSame(array('forms' => array('name' => array('view_vars' => 'foo', 'config' => 'foo', 'default_data' => 'foo', 'submitted_data' => 'foo', 'children' => array('child' => array('view_vars' => 'bar', 'config' => 'bar', 'default_data' => 'bar', 'submitted_data' => 'bar', 'children' => array())))), 'nb_errors' => 0), $this->dataCollector->getData());
}