elasticsearch_search_api-1.0.x-dev/tests/src/Unit/SearchActionFactoryTest.php

tests/src/Unit/SearchActionFactoryTest.php
<?php

namespace Drupal\Tests\elasticsearch_search_api\Unit;

use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\elasticsearch_search_api\Search\Facet\FacetCollection;
use Drupal\elasticsearch_search_api\Search\Facet\FacetValuesCollection;
use Drupal\elasticsearch_search_api\Search\Facet\FlatFacetValue;
use Drupal\elasticsearch_search_api\Search\FacetedKeywordSearchAction;
use Drupal\elasticsearch_search_api\Search\SearchActionFactory;
use Drupal\Tests\UnitTestCase;
use Symfony\Component\HttpFoundation\ParameterBag;

/**
 * Test cases for Drupal\elasticsearch_search_api\Search\SearchActionFactory.
 *
 * @coversDefaultClass \Drupal\elasticsearch_search_api\Search\SearchActionFactory
 *
 * @group elasticsearch_search_api
 */
class SearchActionFactoryTest extends UnitTestCase {

  /**
   * The factory to test.
   *
   * @var \Drupal\elasticsearch_search_api\Search\SearchActionFactory
   */
  private $factory;

  /**
   * Available facets.
   *
   * @var string[]
   */
  private $facets = ['sector', 'type_tegemoetkoming'];

  /**
   * {@inheritdoc}
   */
  public function setUp(): void {
    $entityTypeManagerMock = $this->createMock(EntityTypeManagerInterface::class);

    $this->factory = new SearchActionFactory(10, $entityTypeManagerMock);
  }

  /**
   * Tests SearchActionFactory::searchActionFromQuery().
   */
  public function testBuildFromQuery() {
    $query = new ParameterBag(
      [
        'sector' => [
          '10',
          '11',
          '20',
        ],
        'foo' => [
          '30',
          '33',
        ],
        'from' => 30,
      ]
    );

    $expectedAction = new FacetedKeywordSearchAction(
      10,
      NULL,
      (new FacetCollection())
        ->with(
          'sector',
          new FacetValuesCollection(
            new FlatFacetValue(10),
            new FlatFacetValue(11),
            new FlatFacetValue(20)
          )
        ),
      $this->facets
    );

    $action = $this->factory->searchActionFromQuery($query, $this->facets, TRUE);

    $this->assertEquals($expectedAction, $action);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc