/**
  * Add request settings for DistributedSearch
  *
  * @param Solarium_Query_Select_Component_DistributedSearch $component
  * @param Solarium_Client_Request $request
  * @return Solarium_Client_Request
  */
 public function build($component, $request)
 {
     // add shard fields to request
     $shards = array_values($component->getShards());
     if (count($shards)) {
         $request->addParam('shards', implode(',', $shards));
     }
     $request->addParam('shards.qt', $component->getShardRequestHandler());
     return $request;
 }
 public function testBuildComponent()
 {
     $builder = new Solarium_Client_RequestBuilder_Select_Component_DistributedSearch();
     $request = new Solarium_Client_Request();
     $component = new Solarium_Query_Select_Component_DistributedSearch();
     $component->addShard('shard1', 'localhost:8983/solr/shard1');
     $component->addShards(array('shard2' => 'localhost:8983/solr/shard2', 'shard3' => 'localhost:8983/solr/shard3'));
     $component->setShardRequestHandler('dummy');
     $request = $builder->buildComponent($component, $request);
     $this->assertEquals(array('shards.qt' => 'dummy', 'shards' => 'localhost:8983/solr/shard1,localhost:8983/solr/shard2,localhost:8983/solr/shard3'), $request->getParams());
 }
 public function testSetShardRequestHandler()
 {
     $this->_distributedSearch->setShardRequestHandler('dummy');
     $this->assertEquals('dummy', $this->_distributedSearch->getShardRequestHandler());
 }