/**
  * Tests filtering happens for regex filter.
  *
  * @dataProvider provideRegexTests
  */
 public function testRegexFilter($regex, $expected_results)
 {
     $facet = new Facet([], 'facet');
     $facet->setResults($this->originalResults);
     $facet->addProcessor(['processor_id' => 'exclude_specified_items', 'weights' => [], 'settings' => ['exclude' => 'alpaca', 'regex' => 0]]);
     $this->processor->setConfiguration(['exclude' => $regex, 'regex' => 1]);
     $filtered_results = $this->processor->build($facet, $this->originalResults);
     $this->assertCount(count($expected_results), $filtered_results);
     foreach ($filtered_results as $res) {
         $this->assertTrue(in_array($res->getDisplayValue(), $expected_results));
     }
 }
 /**
  * Tests facet build with base props.
  */
 public function testFacetBasepropBuild()
 {
     $config_manager = $this->getMockBuilder(ConfigManager::class)->disableOriginalConstructor()->getMock();
     $base_field = $this->getMockBuilder(BaseFieldDefinition::class)->disableOriginalConstructor()->getMock();
     $base_field->expects($this->any())->method('getSetting')->willReturnMap([['allowed_values_function', ''], ['allowed_values', [1 => 'blue whale', 2 => 'lynx', 3 => 'dog-wolf-lion']]]);
     $entity_field_manager = $this->getMockBuilder(EntityFieldManager::class)->disableOriginalConstructor()->getMock();
     $entity_field_manager->expects($this->any())->method('getFieldDefinitions')->with('node', '')->willReturn(['test_facet_baseprop' => $base_field]);
     $processor_id = 'list_item';
     $processor = new ListItemProcessor([], $processor_id, [], $config_manager, $entity_field_manager);
     // Base prop facet.
     $base_prop_facet = new Facet([], 'facet');
     $base_prop_facet->setFieldIdentifier('test_facet_baseprop');
     $base_prop_facet->setResults($this->results);
     $base_prop_facet->addProcessor(['processor_id' => 'list_item', 'weights' => [], 'settings' => []]);
     /** @var \Drupal\facets\Result\Result[] $base_prop_results */
     $base_prop_results = $processor->build($base_prop_facet, $this->results);
     $this->assertCount(3, $base_prop_results);
     $this->assertEquals('blue whale', $base_prop_results[0]->getDisplayValue());
     $this->assertEquals('lynx', $base_prop_results[1]->getDisplayValue());
     $this->assertEquals('dog-wolf-lion', $base_prop_results[2]->getDisplayValue());
 }
 /**
  * Tests filtering of results.
  */
 public function testFilterResults()
 {
     $facet = new Facet([], 'facet');
     $facet->setResults($this->originalResults);
     $facet->addProcessor(['processor_id' => 'count_limit', 'weights' => [], 'settings' => ['minimum_items' => 8]]);
     $this->processor->setConfiguration(['minimum_items' => 8]);
     $sorted_results = $this->processor->build($facet, $this->originalResults);
     $this->assertCount(2, $sorted_results);
     $this->assertEquals('llama', $sorted_results[0]->getDisplayValue());
     $this->assertEquals('duck', $sorted_results[2]->getDisplayValue());
 }