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()); }
public function testSerializeWithFormAddedMultipleTimes() { $form1 = $this->createForm('form1'); $form2 = $this->createForm('form2'); $child1 = $this->createForm('child1'); $form1View = new FormView(); $form2View = new FormView(); $child1View = new FormView(); $child1View->vars['is_selected'] = function ($choice, array $values) { return in_array($choice, $values, true); }; $form1->add($child1); $form2->add($child1); $form1View->children['child1'] = $child1View; $form2View->children['child1'] = $child1View; $this->dataExtractor->expects($this->at(0)) ->method('extractConfiguration') ->with($form1) ->will($this->returnValue(array('config' => 'foo'))); $this->dataExtractor->expects($this->at(1)) ->method('extractConfiguration') ->with($child1) ->will($this->returnValue(array('config' => 'bar'))); $this->dataExtractor->expects($this->at(2)) ->method('extractDefaultData') ->with($form1) ->will($this->returnValue(array('default_data' => 'foo'))); $this->dataExtractor->expects($this->at(3)) ->method('extractDefaultData') ->with($child1) ->will($this->returnValue(array('default_data' => 'bar'))); $this->dataExtractor->expects($this->at(4)) ->method('extractSubmittedData') ->with($form1) ->will($this->returnValue(array('submitted_data' => 'foo'))); $this->dataExtractor->expects($this->at(5)) ->method('extractSubmittedData') ->with($child1) ->will($this->returnValue(array('submitted_data' => 'bar'))); $this->dataExtractor->expects($this->at(6)) ->method('extractViewVariables') ->with($form1View) ->will($this->returnValue(array('view_vars' => 'foo'))); $this->dataExtractor->expects($this->at(7)) ->method('extractViewVariables') ->with($child1View) ->will($this->returnValue(array('view_vars' => $child1View->vars))); $this->dataExtractor->expects($this->at(8)) ->method('extractConfiguration') ->with($form2) ->will($this->returnValue(array('config' => 'foo'))); $this->dataExtractor->expects($this->at(9)) ->method('extractConfiguration') ->with($child1) ->will($this->returnValue(array('config' => 'bar'))); $this->dataExtractor->expects($this->at(10)) ->method('extractDefaultData') ->with($form2) ->will($this->returnValue(array('default_data' => 'foo'))); $this->dataExtractor->expects($this->at(11)) ->method('extractDefaultData') ->with($child1) ->will($this->returnValue(array('default_data' => 'bar'))); $this->dataExtractor->expects($this->at(12)) ->method('extractSubmittedData') ->with($form2) ->will($this->returnValue(array('submitted_data' => 'foo'))); $this->dataExtractor->expects($this->at(13)) ->method('extractSubmittedData') ->with($child1) ->will($this->returnValue(array('submitted_data' => 'bar'))); $this->dataExtractor->expects($this->at(14)) ->method('extractViewVariables') ->with($form2View) ->will($this->returnValue(array('view_vars' => 'foo'))); $this->dataExtractor->expects($this->at(15)) ->method('extractViewVariables') ->with($child1View) ->will($this->returnValue(array('view_vars' => $child1View->vars))); $this->dataCollector->collectConfiguration($form1); $this->dataCollector->collectDefaultData($form1); $this->dataCollector->collectSubmittedData($form1); $this->dataCollector->collectViewVariables($form1View); $this->dataCollector->buildFinalFormTree($form1, $form1View); $this->dataCollector->collectConfiguration($form2); $this->dataCollector->collectDefaultData($form2); $this->dataCollector->collectSubmittedData($form2); $this->dataCollector->collectViewVariables($form2View); $this->dataCollector->buildFinalFormTree($form2, $form2View); $this->dataCollector->serialize(); }