|  | 
|  | 1 | +<?php | 
|  | 2 | + | 
|  | 3 | +namespace Parse\Test; | 
|  | 4 | + | 
|  | 5 | +use Parse\ParseException; | 
|  | 6 | +use Parse\ParseObject; | 
|  | 7 | +use Parse\ParseQuery; | 
|  | 8 | + | 
|  | 9 | +class ParseQueryFullTextTest extends \PHPUnit_Framework_TestCase | 
|  | 10 | +{ | 
|  | 11 | +    public static function setUpBeforeClass() | 
|  | 12 | +    { | 
|  | 13 | +        Helper::setUp(); | 
|  | 14 | +    } | 
|  | 15 | + | 
|  | 16 | +    public function setUp() | 
|  | 17 | +    { | 
|  | 18 | +        Helper::clearClass('TestObject'); | 
|  | 19 | +    } | 
|  | 20 | + | 
|  | 21 | +    public function tearDown() | 
|  | 22 | +    { | 
|  | 23 | +        Helper::tearDown(); | 
|  | 24 | +    } | 
|  | 25 | + | 
|  | 26 | +    /** | 
|  | 27 | +     * This function used as a helper function in test functions to save objects. | 
|  | 28 | +     */ | 
|  | 29 | +    public function provideTestObjects() | 
|  | 30 | +    { | 
|  | 31 | +        $subjects = [ | 
|  | 32 | +            'coffee', | 
|  | 33 | +            'Coffee Shopping', | 
|  | 34 | +            'Baking a cake', | 
|  | 35 | +            'baking', | 
|  | 36 | +            'Café Con Leche', | 
|  | 37 | +            'Сырники', | 
|  | 38 | +            'coffee and cream', | 
|  | 39 | +            'Cafe con Leche' | 
|  | 40 | +        ]; | 
|  | 41 | + | 
|  | 42 | +        $allObjects = []; | 
|  | 43 | +        for ($i = 0; $i < count($subjects); ++$i) { | 
|  | 44 | +            $obj = new ParseObject('TestObject'); | 
|  | 45 | +            $obj->set('subject', $subjects[$i]); | 
|  | 46 | +            $allObjects[] = $obj; | 
|  | 47 | +        } | 
|  | 48 | +        ParseObject::saveAll($allObjects); | 
|  | 49 | +    } | 
|  | 50 | + | 
|  | 51 | +    public function testFullTextQuery() | 
|  | 52 | +    { | 
|  | 53 | +        $this->provideTestObjects(); | 
|  | 54 | +        $query = new ParseQuery('TestObject'); | 
|  | 55 | +        $query->fullText('subject', 'coffee'); | 
|  | 56 | +        $results = $query->find(); | 
|  | 57 | +        $this->assertEquals( | 
|  | 58 | +            3, | 
|  | 59 | +            count($results), | 
|  | 60 | +            'Did not return correct objects.' | 
|  | 61 | +        ); | 
|  | 62 | +    } | 
|  | 63 | + | 
|  | 64 | +    public function testFullTextSort() | 
|  | 65 | +    { | 
|  | 66 | +        $this->provideTestObjects(); | 
|  | 67 | +        $query = new ParseQuery('TestObject'); | 
|  | 68 | +        $query->fullText('subject', 'coffee'); | 
|  | 69 | +        $query->ascending('$score'); | 
|  | 70 | +        $query->select('$score'); | 
|  | 71 | +        $results = $query->find(); | 
|  | 72 | +        $this->assertEquals( | 
|  | 73 | +            3, | 
|  | 74 | +            count($results), | 
|  | 75 | +            'Did not return correct number of objects.' | 
|  | 76 | +        ); | 
|  | 77 | +        $this->assertEquals(1, $results[0]->get('score')); | 
|  | 78 | +        $this->assertEquals(0.75, $results[1]->get('score')); | 
|  | 79 | +        $this->assertEquals(0.75, $results[2]->get('score')); | 
|  | 80 | +    } | 
|  | 81 | +} | 
0 commit comments