/** * Add request settings for DistributedSearch. * * @param DistributedSearchComponent $component * @param Request $request * * @return Request */ public function buildComponent($component, $request) { // add shards to request $shards = array_values($component->getShards()); if (count($shards)) { $request->addParam('shards', implode(',', $shards)); } $replicas = array_values($component->getReplicas()); if (count($replicas)) { $value = $request->getParam('shards') ? $request->getParam('shards') . ',' . implode('|', $replicas) : implode('|', $replicas); $request->addParam('shards', $value, true); } $request->addParam('shards.qt', $component->getShardRequestHandler()); // add collections to request $collections = array_values($component->getCollections()); if (count($collections)) { $request->addParam('collection', implode(',', $collections)); } return $request; }
public function testPreExecuteRequestWithPersistentAndNonPersistentCustomizations() { $input = array('key' => 'xid', 'type' => 'param', 'name' => 'xid', 'value' => 123); $this->plugin->addCustomization($input); $input = array('key' => 'auth', 'type' => 'header', 'name' => 'X-my-auth', 'value' => 'mypassword', 'persistent' => true); $this->plugin->addCustomization($input); $request = new Request(); $event = new PreExecuteRequestEvent($request, new Endpoint()); $this->plugin->preExecuteRequest($event); $this->assertEquals(123, $request->getParam('xid')); $this->assertEquals(array('X-my-auth: mypassword'), $request->getHeaders()); // second use, only the header should be persistent $request = new Request(); $event = new PreExecuteRequestEvent($request, new Endpoint()); $this->plugin->preExecuteRequest($event); $this->assertEquals(null, $request->getParam('xid')); $this->assertEquals(array('X-my-auth: mypassword'), $request->getHeaders()); }
public function testGetInvalidParam() { $this->assertEquals(null, $this->request->getParam('invalidname')); }