/**
  * Tests string query type without executing the query with an "OR" operator.
  */
 public function testQueryTypeOr()
 {
     $query = new SearchApiQuery([], 'search_api_query', []);
     $facet = new Facet(['query_operator' => 'OR'], 'facets_facet');
     $facet->setFieldIdentifier('field_animal');
     $original_results = [['count' => 3, 'filter' => 'badger'], ['count' => 5, 'filter' => 'mushroom'], ['count' => 7, 'filter' => 'narwhal'], ['count' => 9, 'filter' => 'unicorn']];
     $query_type = new SearchApiString(['facet' => $facet, 'query' => $query, 'results' => $original_results], 'search_api_string', []);
     $built_facet = $query_type->build();
     $this->assertInstanceOf('\\Drupal\\facets\\FacetInterface', $built_facet);
     $results = $built_facet->getResults();
     $this->assertInternalType('array', $results);
     foreach ($original_results as $k => $result) {
         $this->assertInstanceOf('\\Drupal\\facets\\Result\\ResultInterface', $results[$k]);
         $this->assertEquals($result['count'], $results[$k]->getCount());
         $this->assertEquals($result['filter'], $results[$k]->getDisplayValue());
     }
 }
 /**
  * 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());
 }
Esempio n. 3
0
 /**
  * Tests that the facet source configuration filter key override works.
  */
 public function testFacetSourceFilterKeyOverride()
 {
     $facet_source = new FacetSource(['filter_key' => 'ab'], 'facets_facet_source');
     // Override the container with the new facet source.
     $storage = $this->getMock('\\Drupal\\Core\\Entity\\EntityStorageInterface');
     $storage->expects($this->once())->method('load')->willReturn($facet_source);
     $em = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityTypeManagerInterface')->disableOriginalConstructor()->getMock();
     $em->expects($this->any())->method('getStorage')->willReturn($storage);
     $container = \Drupal::getContainer();
     $container->set('entity_type.manager', $em);
     \Drupal::setContainer($container);
     $facet = new Facet([], 'facet');
     $facet->setFieldIdentifier('test');
     $facet->setFacetSourceId('facet_source__dummy');
     $facet->setUrlAlias('test');
     $request = new Request();
     $request->query->set('ab', []);
     $this->processor = new QueryString(['facet' => $facet], 'query_string', [], $request);
     $results = $this->processor->buildUrls($facet, $this->originalResults);
     /** @var \Drupal\facets\Result\ResultInterface $r */
     foreach ($results as $r) {
         $this->assertInstanceOf('\\Drupal\\facets\\Result\\ResultInterface', $r);
         $this->assertEquals('route:test?ab[0]=test%3A' . $r->getRawValue(), $r->getUrl()->toUriString());
     }
 }