protected function setUp() { $this->dataMapper = $this->getMock('FSi\\Component\\DataGrid\\DataMapper\\DataMapperInterface'); $this->dataMapper->expects($this->any())->method('getData')->will($this->returnCallback(function ($field, $object) { switch ($field) { case 'name': return $object->getName(); break; } })); $this->dataMapper->expects($this->any())->method('setData')->will($this->returnCallback(function ($field, $object, $value) { switch ($field) { case 'name': return $object->setName($value); break; } })); $this->indexingStrategy = $this->getMock('FSi\\Component\\DataGrid\\Data\\IndexingStrategyInterface'); $this->indexingStrategy->expects($this->any())->method('getIndex')->will($this->returnCallback(function ($object, $dataMapper) { if (is_object($object)) { return $object->getName(); } return null; })); $this->factory = $this->getMock('FSi\\Component\\DataGrid\\DataGridFactoryInterface'); $this->factory->expects($this->any())->method('getExtensions')->will($this->returnValue(array(new FooExtension()))); $this->factory->expects($this->any())->method('getColumnType')->with($this->equalTo('foo'))->will($this->returnValue(new FooType())); $this->factory->expects($this->any())->method('hasColumnType')->with($this->equalTo('foo'))->will($this->returnValue(true)); $this->datagrid = new DataGrid('grid', $this->factory, $this->dataMapper, $this->indexingStrategy); }