/** * 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)); } }
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')); }
/** * @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']); }