/**
  * @dataProvider addFilter_testdata
  *
  */
 public function test_addFilter($colname, $value, $comp, $type, $expected_filter, $expectException, $msg)
 {
     $search = new mock\Search();
     $search->addSchema('schema2');
     $search->addColumn('%pageid%');
     if ($expectException !== false) {
         $this->setExpectedException($expectException);
     }
     $search->addFilter($colname, $value, $comp, $type);
     if (count($expected_filter) === 0) {
         $this->assertEquals(count($search->filter), 0, $msg);
         return;
     }
     $this->assertEquals($expected_filter[0][0], $search->filter[0][0]->getLabel(), $msg);
     $this->assertEquals($expected_filter[0][1], $search->filter[0][1], $msg);
     $this->assertEquals($expected_filter[0][2], $search->filter[0][2], $msg);
     $this->assertEquals($expected_filter[0][3], $search->filter[0][3], $msg);
 }
 public function test_filter()
 {
     $this->loadSchemaJSON('decimal');
     $this->waitForTick();
     $this->saveData('page1', 'decimal', array('field' => '5000'));
     $this->saveData('page2', 'decimal', array('field' => '5000.001'));
     $this->saveData('page3', 'decimal', array('field' => '900.5'));
     $this->saveData('page4', 'decimal', array('field' => '1.5'));
     $search = new Search();
     $search->addSchema('decimal');
     $search->addColumn('%pageid%');
     $search->addColumn('field');
     $search->addFilter('field', '800', '>', 'AND');
     $search->addSort('field', true);
     /** @var Value[][] $result */
     $result = $search->execute();
     $this->assertEquals(3, count($result));
     $this->assertEquals('page3', $result[0][0]->getValue());
     $this->assertEquals('page1', $result[1][0]->getValue());
     $this->assertEquals('page2', $result[2][0]->getValue());
 }