/** * @runInSeparateProcess */ public function testMakeSetsUpDataGridContext() { $request = m::mock('Cartalyst\\DataGrid\\RequestProviders\\ProviderInterface'); $request->shouldReceive('getSort')->twice(); $request->shouldReceive('getDirection')->once(); $request->shouldReceive('getDownload')->once(); $request->shouldReceive('getFilters')->once()->andReturn(array()); $request->shouldReceive('getMethod')->once()->andReturn('single'); $request->shouldReceive('getThreshold')->twice()->andReturn(100); $request->shouldReceive('getThrottle')->twice()->andReturn(100); $request->shouldReceive('getPage')->once()->andReturn(1); $environment = new Environment($request); $environment->setDataHandlerMapping('Cartalyst\\DataGrid\\DataHandlers\\CollectionHandler', function ($data) { return $data instanceof Collection or is_array($data); }); $dataGridMock = m::mock('Cartalyst\\DataGrid\\DataGrid'); $dataGrid = $environment->make(array(array('foo' => 'bar')), array('foo')); $dataGridMock->shouldReceive('getEnvironment')->andReturn($environment); $dataGridMock->shouldReceive('getData')->andReturn(array('total' => 1, 'filtered' => 1, 'throttle' => 100, 'threshold' => 100, 'page' => 1, 'pages' => 1, 'previous_page' => null, 'next_page' => null, 'per_page' => 1, 'sort' => null, 'direction' => null, 'default_column' => null, 'results' => array(array('foo' => 'bar')))); $expected = array('Cartalyst\\DataGrid\\DataHandlers\\CollectionHandler' => function ($data) { return $data instanceof Collection or is_array($data); }); $this->assertEquals($expected, $environment->getDataHandlerMappings()); $this->assertEquals($dataGridMock->getData(), $dataGrid->toArray()); }
/** * Create a new data grid instance. * * @param mixed $dataHandler * @param array $columns * @param array $settings * @param \Closure $transformer * @return \Cartalyst\DataGrid\DataGrid * @static */ public static function make($dataHandler, $columns, $settings = array(), $transformer = null) { return \Cartalyst\DataGrid\Environment::make($dataHandler, $columns, $settings, $transformer); }