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); }
public function logRequest(PostCreateRequest $event) { $this->requests[spl_object_hash($event->getQuery())] += ['request' => $event->getRequest()]; }
/** * 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'); } }