/**
  * @group 7
  */
 public function testDispatchEvent()
 {
     $queryParams = new Parameters(['foo' => 'bar']);
     $event = new ResourceEvent();
     $event->setName('fetchAll');
     $event->setQueryParams($queryParams);
     //        $event->setParam('user_id', 1);
     $event->setRouteMatch(new RouteMatch(['user_id' => 1]));
     $result = $this->listener->dispatch($event);
     $this->assertInstanceOf(ResultSet::class, $result);
 }
Beispiel #2
0
 /**
  * Prepare event parameters
  *
  * Merges any event parameters set in the resources with arguments passed
  * to a resource method, and passes them to the `prepareArgs` method of the
  * event manager.
  *
  * If an input filter is composed, this, too, is injected into the event.
  *
  * @param  string $name
  * @param  array $args
  * @return ResourceEvent
  */
 protected function prepareEvent($name, array $args)
 {
     $event = new ResourceEvent($name, $this, $this->prepareEventParams($args));
     $event->setIdentity($this->getIdentity());
     $event->setInputFilter($this->getInputFilter());
     $event->setQueryParams($this->getQueryParams());
     $event->setRouteMatch($this->getRouteMatch());
     return $event;
 }
Beispiel #3
0
 /**
  * @depends testQueryParamsAreMutable
  */
 public function testQueryParamsAreNullable(ResourceEvent $event)
 {
     $event->setQueryParams(null);
     $this->assertNull($event->getQueryParams());
 }
 /**
  * @group 7
  */
 public function testDispatchShouldPassWhitelistedQueryParamsToFetchAllMethod()
 {
     $queryParams = new Parameters(array('foo' => 'bar'));
     $event = new ResourceEvent();
     $event->setName('fetchAll');
     $event->setQueryParams($queryParams);
     $this->listener->dispatch($event);
     $this->assertEquals($queryParams, $this->listener->testCase->paramsPassedToListener);
 }
 /**
  * @inheritdoc
  */
 public function dispatch(ResourceEvent $event)
 {
     $this->event = $event;
     switch ($event->getName()) {
         case 'fetchAll':
             // Always transform paging related params and decode JSON encoded params
             $event->setQueryParams(new Parameters($this->getQueryParams($event, true, true)));
             break;
         default:
             // Do nothing
             break;
     }
     if ($this->hasRequestCommandMapping($event->getName())) {
         $this->command = $this->createCommand($event);
     }
     /** @todo Use eventing... */
     $result = $this->onBeforeDispatch($event, $this->command);
     // No need to continue if we already encountered a problem...
     if ($result instanceof ApiProblem) {
         return $result;
     }
     switch ($event->getName()) {
         case 'patchMultiple':
             $ids = $event->getParam('ids', array());
             $data = $event->getParam('data', array());
             return $this->patchMultiple($ids, $data);
         default:
             // Do nothing
             break;
     }
     return parent::dispatch($event);
 }