/**
  * Allows the backend to add facet queries to its native query object.
  *
  * This method is called by the implementing module to initialize the facet
  * display process.
  *
  * @param mixed $query
  *   The backend's native query object.
  * @param string $facetsource_id
  *   The facet source ID to process.
  */
 public function alterQuery(&$query, $facetsource_id)
 {
     /** @var \Drupal\facets\FacetInterface[] $facets */
     foreach ($this->getFacetsByFacetSourceId($facetsource_id) as $facet) {
         /** @var \Drupal\facets\QueryType\QueryTypeInterface $query_type_plugin */
         $query_type_plugin = $this->queryTypePluginManager->createInstance($facet->getQueryType(), ['query' => $query, 'facet' => $facet]);
         $query_type_plugin->execute();
     }
 }
 /**
  * Tests plugin manager's getDefinitions method.
  */
 public function testGetDefinitions()
 {
     $definitions = array('foo' => array('label' => $this->randomMachineName()));
     $this->discovery->expects($this->once())->method('getDefinitions')->willReturn($definitions);
     $this->assertSame($definitions, $this->sut->getDefinitions());
 }