results = [ new Result($facet, 1, 1, 10), new Result($facet, 2, 2, 5), new Result($facet, 3, 3, 15), ]; $config_manager = $this->getMockBuilder(ConfigManager::class) ->disableOriginalConstructor() ->getMock(); $entity_field_manager = $this->getMockBuilder(EntityFieldManager::class) ->disableOriginalConstructor() ->getMock(); $entity_type_bundle_info = $this->getMockBuilder(EntityTypeBundleInfo::class) ->disableOriginalConstructor() ->getMock(); $this->processor = new ListItemProcessor([], 'list_item', [], $config_manager, $entity_field_manager, $entity_type_bundle_info); } /** * Tests facet build with field.module field. */ public function testBuildConfigurableField() { $module_field = $this->getMockBuilder(FieldStorageConfig::class) ->disableOriginalConstructor() ->getMock(); // Make sure that when the processor calls loadConfigEntityByName the field // we created here is called. $config_manager = $this->getMockBuilder(ConfigManager::class) ->disableOriginalConstructor() ->getMock(); $config_manager->expects($this->exactly(2)) ->method('loadConfigEntityByName') ->willReturn($module_field); $entity_field_manager = $this->getMockBuilder(EntityFieldManager::class) ->disableOriginalConstructor() ->getMock(); $entity_type_bundle_info = $this->getMockBuilder(EntityTypeBundleInfo::class) ->disableOriginalConstructor() ->getMock(); $processor = new ListItemProcessor([], 'list_item', [], $config_manager, $entity_field_manager, $entity_type_bundle_info); // Config entity field facet. $module_field_facet = new Facet([], 'facets_facet'); $module_field_facet->setFieldIdentifier('test_facet'); $module_field_facet->setResults($this->results); $module_field_facet->addProcessor([ 'processor_id' => 'list_item', 'weights' => [], 'settings' => [], ]); /* @var \Drupal\facets\Result\Result[] $module_field_facet- */ $module_field_results = $processor->build($module_field_facet, $this->results); $this->assertCount(3, $module_field_results); $this->assertEquals('llama', $module_field_results[0]->getDisplayValue()); $this->assertEquals('badger', $module_field_results[1]->getDisplayValue()); $this->assertEquals('kitten', $module_field_results[2]->getDisplayValue()); } /** * Tests facet build with field.module field. */ public function testBuildBundle() { $module_field = $this->getMockBuilder(FieldStorageConfig::class) ->disableOriginalConstructor() ->getMock(); $config_manager = $this->getMockBuilder(ConfigManager::class) ->disableOriginalConstructor() ->getMock(); $config_manager->expects($this->exactly(2)) ->method('loadConfigEntityByName') ->willReturn($module_field); $entity_field_manager = $this->getMockBuilder(EntityFieldManager::class) ->disableOriginalConstructor() ->getMock(); $entity_type_bundle_info = $this->getMockBuilder(EntityTypeBundleInfo::class) ->disableOriginalConstructor() ->getMock(); $processor = new ListItemProcessor([], 'list_item', [], $config_manager, $entity_field_manager, $entity_type_bundle_info); // Config entity field facet. $module_field_facet = new Facet([], 'facets_facet'); $module_field_facet->setFieldIdentifier('test_facet'); $module_field_facet->setResults($this->results); $module_field_facet->addProcessor([ 'processor_id' => 'list_item', 'weights' => [], 'settings' => [], ]); /* @var \Drupal\facets\Result\Result[] $module_field_facet- */ $module_field_results = $processor->build($module_field_facet, $this->results); $this->assertCount(3, $module_field_results); $this->assertEquals('llama', $module_field_results[0]->getDisplayValue()); $this->assertEquals('badger', $module_field_results[1]->getDisplayValue()); $this->assertEquals('kitten', $module_field_results[2]->getDisplayValue()); } /** * Tests facet build with base props. */ public function testBuildBaseField() { $config_manager = $this->getMockBuilder(ConfigManager::class) ->disableOriginalConstructor() ->getMock(); $base_field = $this->getMockBuilder(BaseFieldDefinition::class) ->disableOriginalConstructor() ->getMock(); $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, ]); $entity_type_bundle_info = $this->getMockBuilder(EntityTypeBundleInfo::class) ->disableOriginalConstructor() ->getMock(); $processor = new ListItemProcessor([], 'list_item', [], $config_manager, $entity_field_manager, $entity_type_bundle_info); // Base prop facet. $base_prop_facet = new Facet([], 'facets_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('llama', $base_prop_results[0]->getDisplayValue()); $this->assertEquals('badger', $base_prop_results[1]->getDisplayValue()); $this->assertEquals('kitten', $base_prop_results[2]->getDisplayValue()); } /** * Tests configuration. */ public function testConfiguration() { $config = $this->processor->defaultConfiguration(); $this->assertEquals([], $config); } /** * Tests testDescription(). */ public function testDescription() { $this->assertEquals('', $this->processor->getDescription()); } /** * Tests isHidden(). */ public function testIsHidden() { $this->assertEquals(FALSE, $this->processor->isHidden()); } /** * Tests isLocked(). */ public function testIsLocked() { $this->assertEquals(FALSE, $this->processor->isLocked()); } } namespace Drupal\facets\Plugin\facets\processor; if (!function_exists('options_allowed_values')) { /** * Overwrite the global function with a version that returns the test values. */ function options_allowed_values() { return [ 1 => 'llama', 2 => 'badger', 3 => 'kitten', ]; } }