113 lines
3.0 KiB
PHP
113 lines
3.0 KiB
PHP
<?php
|
|
|
|
use Chumper\Datatable\Engines\CollectionEngine;
|
|
use Illuminate\Support\Collection;
|
|
use Illuminate\Support\Facades\Input;
|
|
use Orchestra\Testbench\TestCase;
|
|
use Illuminate\Support\Facades\Config;
|
|
|
|
class BaseEngineTest extends TestCase {
|
|
|
|
private $collection;
|
|
|
|
/**
|
|
* @var CollectionEngine
|
|
*/
|
|
private $engine;
|
|
|
|
public function setUp()
|
|
{
|
|
// set up config
|
|
Config::shouldReceive('get')->zeroOrMoreTimes()->with("datatable::engine")->andReturn(
|
|
array(
|
|
'exactWordSearch' => false,
|
|
)
|
|
);
|
|
|
|
$this->collection = new Collection();
|
|
$this->engine = new CollectionEngine($this->collection);
|
|
}
|
|
|
|
|
|
/**
|
|
* @expectedException Exception
|
|
*/
|
|
public function testAddColumn()
|
|
{
|
|
$this->engine->addColumn('foo', 'bar');
|
|
|
|
$this->assertInstanceOf(
|
|
'Chumper\Datatable\Columns\TextColumn',
|
|
$this->engine->getColumn('foo')
|
|
);
|
|
|
|
$this->engine->addColumn('foo2', function($model){return $model->fooBar;});
|
|
|
|
$this->assertInstanceOf(
|
|
'Chumper\Datatable\Columns\FunctionColumn',
|
|
$this->engine->getColumn('foo2')
|
|
);
|
|
|
|
$this->assertEquals(array(1 => 'foo2', 0 => 'foo'), $this->engine->getOrder());
|
|
|
|
$this->engine->addColumn();
|
|
}
|
|
|
|
public function testClearColumns()
|
|
{
|
|
$this->engine->addColumn('foo','Bar');
|
|
$this->assertInstanceOf(
|
|
'Chumper\Datatable\Columns\TextColumn',
|
|
$this->engine->getColumn('foo')
|
|
);
|
|
|
|
$this->engine->clearColumns();
|
|
$this->assertEquals(array(), $this->engine->getOrder());
|
|
}
|
|
|
|
public function testSearchColumns()
|
|
{
|
|
$this->engine->searchColumns('id');
|
|
|
|
$this->assertEquals(array('id'), $this->engine->getSearchingColumns());
|
|
|
|
$this->engine->searchColumns('name', 'email');
|
|
|
|
$this->assertEquals(array('name','email'), $this->engine->getSearchingColumns());
|
|
|
|
$this->engine->searchColumns(array('foo', 'bar'));
|
|
|
|
$this->assertEquals(array('foo', 'bar'), $this->engine->getSearchingColumns());
|
|
}
|
|
|
|
public function testOrderColumns()
|
|
{
|
|
$this->engine->orderColumns('id');
|
|
|
|
$this->assertEquals(array('id'), $this->engine->getOrderingColumns());
|
|
|
|
$this->engine->orderColumns('name', 'email');
|
|
|
|
$this->assertEquals(array('name','email'), $this->engine->getOrderingColumns());
|
|
|
|
$this->engine->orderColumns(array('foo', 'bar'));
|
|
|
|
$this->assertEquals(array('foo', 'bar'), $this->engine->getOrderingColumns());
|
|
}
|
|
|
|
public function testShowColumns()
|
|
{
|
|
$this->engine->showColumns('id');
|
|
|
|
$this->assertEquals(array('id'), $this->engine->getOrder());
|
|
|
|
$this->engine->showColumns('name', 'email');
|
|
|
|
$this->assertEquals(array('id','name','email'), $this->engine->getOrder());
|
|
|
|
$this->engine->showColumns(array('foo', 'bar'));
|
|
|
|
$this->assertEquals(array('id','name','email', 'foo', 'bar'), $this->engine->getOrder());
|
|
}
|
|
}
|
|
|