/**
  * Prepares the REST Request object with values appropriate for a sub-resource request.
  *
  * @param \BedRest\Rest\Request\Request $restRequest
  * @param \Zend\Http\Request            $httpRequest
  * @param \Zend\Mvc\Router\RouteMatch   $routeMatch
  */
 protected function prepareSubResource(RestRequest $restRequest, HttpRequest $httpRequest, RouteMatch $routeMatch)
 {
     $id = $routeMatch->getParam('id', null);
     $restRequest->setParameter('identifier', $id);
     $resourceName = $routeMatch->getParam('__CONTROLLER__');
     $subResourceName = $routeMatch->getParam('subresource', null);
     $restRequest->setResource($resourceName . '/' . $subResourceName);
     $subId = $routeMatch->getParam('subresource_id', null);
     if (!empty($subId)) {
         $restRequest->setParameter('subresource_identifier', $subId);
     }
     $method = strtoupper($httpRequest->getMethod());
     if (!empty($method)) {
         if (empty($subId) && $method !== RestRequestType::METHOD_POST) {
             $method .= '_COLLECTION';
         }
         $restRequest->setMethod(constant('BedRest\\Rest\\Request\\Type::METHOD_' . $method));
     }
 }
示例#2
0
 public function testParameters()
 {
     $components = array('one' => 'valueOne', 'two' => 'valueTwo');
     $this->request->setParameters($components);
     $this->assertEquals($components, $this->request->getParameters());
     $this->assertEquals('valueOne', $this->request->getParameter('one'));
     $this->assertEquals('valueTwo', $this->request->getParameter('two'));
     $this->request->setParameter('three', 'valueThree');
     $this->assertEquals('valueThree', $this->request->getParameter('three'));
     $this->request->setParameter('two', 'valueTwoModified');
     $this->assertEquals('valueTwoModified', $this->request->getParameter('two'));
 }
示例#3
0
 /**
  * @dataProvider getCollectionRequest
  *
  * @param \BedRest\Rest\Request\Request $request
  */
 public function testRestGetCollectionStart(Request $request)
 {
     $num = 2;
     $start = 1;
     $request->setParameter('start', $start);
     $event = new Event();
     $event->setRequest($request);
     $this->service->restGetCollection($event);
     $data = $event->getData();
     // test counts are correct
     $this->assertEquals($num, $data['num']);
     $this->assertEquals($num, count($data['items']));
     $this->assertEquals(3, $data['total']);
     // test we started at the correct point
     $this->assertEquals(2, $data['items'][0]['id']);
     $this->assertEquals(3, $data['items'][1]['id']);
 }