Skip to content
Snippets Groups Projects
TermTest.php 1.77 KiB
Newer Older
ONGR Team's avatar
ONGR Team committed
<?php

/*
 * This file is part of the ONGR package.
 *
 * (c) NFQ Technologies UAB <info@nfq.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace ONGR\ElasticsearchBundle\Tests\Unit\DSL\Suggester;

use ONGR\ElasticsearchBundle\DSL\Suggester\Term;

class TermTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @return array
     */
    public function getTestToArrayData()
    {
        $out = [];

        // Case #0: simple.
        $term0 = new Term('body', 'lorem ipsum');
        $expected0 = [
            'body-term' => [
                'text' => 'lorem ipsum',
                'term' => [
                    'field' => 'body',
                ],
            ],
        ];
        $out[] = [$expected0, $term0];

        // Case #1: full suggester.
        $term1 = new Term('body', 'lorem ipsum');
        $term1
            ->setSize(2)
            ->setAnalyzer('simple')
            ->setSuggestMode(Term::SUGGEST_MODE_ALWAYS)
            ->setSort(Term::SORT_BY_SCORE);

        $expected1 = [
            'body-term' => [
                'text' => 'lorem ipsum',
                'term' => [
                    'field' => 'body',
                    'analyzer' => 'simple',
                    'sort' => 'score',
                    'suggest_mode' => 'always',
                ],
                'size' => 2,
            ],
        ];

        $out[] = [$expected1, $term1];

        return $out;
    }

    /**
     * Tests toArray method.
     *
     * @param array $expected
     * @param Term  $suggester
     *
     * @dataProvider getTestToArrayData
     */
    public function testToArray($expected, $suggester)
    {
        $this->assertEquals($expected, $suggester->toArray());
    }
}