public function testConstructorAndGetters()
 {
     $query = new Query();
     $query->setQuery('test123');
     $request = new Request();
     $request->addParam('testparam', 'test value');
     $event = new PostCreateRequest($query, $request);
     $this->assertEquals($query, $event->getQuery());
     $this->assertEquals($request, $event->getRequest());
 }
 public function testCreateRequestPostPlugin()
 {
     $query = new SelectQuery();
     $request = $this->client->createRequest($query);
     $expectedEvent = new PostCreateRequestEvent($query, $request);
     $expectedEvent->setDispatcher($this->client->getEventDispatcher());
     $expectedEvent->setName(Events::POST_CREATE_REQUEST);
     $observer = $this->getMock('Solarium\\Core\\Plugin\\Plugin', array('postCreateRequest'));
     $observer->expects($this->once())->method('postCreateRequest')->with($this->equalTo($expectedEvent));
     $this->client->registerPlugin('testplugin', $observer);
     $this->client->getEventDispatcher()->addListener(Events::POST_CREATE_REQUEST, array($observer, 'postCreateRequest'));
     $this->client->createRequest($query);
 }
Exemple #3
0
 public function logRequest(PostCreateRequest $event)
 {
     $this->requests[spl_object_hash($event->getQuery())] += ['request' => $event->getRequest()];
 }
Exemple #4
0
 /**
  * Event hook to adjust client settings just before query execution
  *
  * @param  PostCreateRequestEvent $event
  * @return void
  */
 public function postCreateRequest($event)
 {
     $request = $event->getRequest();
     $queryString = $request->getQueryString();
     if ($request->getMethod() == Request::METHOD_GET && strlen($queryString) > $this->getMaxQueryStringLength()) {
         $request->setMethod(Request::METHOD_POST);
         $request->setRawData($queryString);
         $request->clearParams();
         $request->addHeader('Content-Type: application/x-www-form-urlencoded');
     }
 }