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); } }