コード例 #1
0
 public function testRangeFilters()
 {
     $criteria = new ESphinxSearchCriteria();
     try {
         $criteria->addRangeFilters('');
         $this->setExpectedException('ESphinxException');
     } catch (Exception $e) {
         $this->assertInstanceOf('ESphinxException', $e);
     }
     try {
         $criteria->addRangeFilters(array());
         $this->setExpectedException('ESphinxException');
     } catch (Exception $e) {
         $this->assertInstanceOf('ESphinxException', $e);
     }
     try {
         $criteria->addRangeFilters(array('attr'));
         $this->setExpectedException('ESphinxException');
     } catch (Exception $e) {
         $this->assertInstanceOf('ESphinxException', $e);
     }
     try {
         $criteria->addRangeFilter('', 1, 2);
         $this->setExpectedException('ESphinxException');
     } catch (Exception $e) {
         $this->assertInstanceOf('ESphinxException', $e);
     }
     // add vaue
     $criteria->addRangeFilter('attribute', 1, 10);
     $this->assertEquals($criteria->getRangeFilters(), array(array('attribute' => 'attribute', 'min' => 1, 'max' => 10, 'exclude' => false, 'float' => false)));
     $criteria->cleanRangeFilters();
     $this->assertEquals($criteria->getRangeFilters(), array());
     // add float value
     $criteria->addRangeFilter('attribute', 1.1, 10, true);
     $this->assertEquals($criteria->getRangeFilters(), array(array('attribute' => 'attribute', 'min' => 1.1, 'max' => 10, 'exclude' => true, 'float' => true)));
     $criteria->cleanRangeFilters();
     $this->assertEquals($criteria->getRangeFilters(), array());
     // добавление нескольких значений
     $criteria->addRangeFilters(array(array('attribute1', 'min' => 1, 'max' => (double) 100), array('attribute2', 'min' => 1.2, 'max' => 100.1), array('attribute3', 'min' => 1, 'max' => 100, 'exclude' => true), array('attribute4', 'min' => 1, 'max' => 100)));
     $this->assertEquals($criteria->getRangeFilters(), array(array('attribute' => 'attribute1', 'min' => 1.0, 'max' => 100.0, 'exclude' => false, 'float' => true), array('attribute' => 'attribute2', 'min' => 1.2, 'max' => 100.1, 'exclude' => false, 'float' => true), array('attribute' => 'attribute3', 'min' => 1, 'max' => 100, 'exclude' => true, 'float' => false), array('attribute' => 'attribute4', 'min' => 1, 'max' => 100, 'exclude' => false, 'float' => false)));
 }