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 testSearch()
 {
     // Facade expection
     Input::replace(array('sSearch' => 'eoo'));
     $engine = new CollectionEngine(new Collection($this->getTestArray()));
     $engine->addColumn($this->getTestColumns());
     $engine->searchColumns('id');
     $engine->setAliasMapping();
     $should = '{"aaData":[{"id":"eoo"}],"sEcho":0,"iTotalRecords":2,"iTotalDisplayRecords":1}';
     $actual = $engine->make()->getContent();
     $this->assertEquals($should, $actual);
     //------------------TEST 2-----------------
     // search in outputed data
     $engine = new CollectionEngine(new Collection(array(array('foo', 'foo2', 'foo3'), array('bar', 'bar2', 'bar3'))));
     $engine->addColumn(new FunctionColumn('bla', function ($row) {
         return $row[0] . " - " . $row[1];
     }));
     $engine->addColumn(new FunctionColumn('1', function ($row) {
         return $row[2];
     }));
     $engine->addColumn(new FunctionColumn('bla3', function ($row) {
         return $row[0] . " - " . $row[2];
     }));
     $engine->searchColumns("bla", 1);
     $engine->setAliasMapping();
     Input::replace(array('sSearch' => 'foo2'));
     $should = array(array('bla' => 'foo - foo2', '1' => 'foo3', 'bla3' => 'foo - foo3'));
     $response = json_decode($engine->make()->getContent());
     $this->assertEquals(json_encode($should), json_encode((array) $response->aaData));
     //------------------TEST 3-----------------
     // search in initial data
     // TODO: Search in initial data columns?
     $engine = new CollectionEngine(new Collection(array(array('foo', 'foo2', 'foo3'), array('bar', 'bar2', 'bar3'))));
     $engine->addColumn(new FunctionColumn('bla3', function ($row) {
         return $row[0] . " - " . $row[2];
     }));
     $engine->addColumn(new FunctionColumn('1', function ($row) {
         return $row[1];
     }));
     $engine->searchColumns("bla3", 1);
     $engine->setAliasMapping();
     Input::replace(array('sSearch' => 'foo2'));
     $should = array(array('bla3' => 'foo - foo3', '1' => 'foo2'));
     $response = json_decode($engine->make()->getContent());
     $this->assertEquals(json_encode($should), json_encode($response->aaData));
 }