/** * Initialises the controller. */ public function init() { /** @var \BedRest\Framework\Zend1\Container _bedRest */ $this->_bedRest = $this->getFrontController()->getParam('bootstrap')->getResource('bedrest'); $this->_bedRestRequest = new Request(); $this->_bedRestRequest->setResource(Inflector::classify($this->getRequest()->getControllerName())); $routeComponents = array('identifier' => $this->_getParam('id')); $this->_bedRestRequest->setRouteComponents($routeComponents); $data = file_get_contents('php://input'); $this->_bedRestRequest->setRawBody($data); $this->_helper->ViewRenderer->setNoRender(true); }
/** * 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 testResource() { $this->request->setResource('test-resource'); $this->assertEquals('test-resource', $this->request->getResource()); }
public function getCollectionRequest() { $request = new Request(); $request->setMethod(Type::METHOD_GET_COLLECTION); $request->setResource('asset'); return array(array($request)); }
/** * @dataProvider requests * * @param string $method */ public function testDispatchToNonExistentSubResourceThrows404Exception($method) { // configure the Dispatcher with the necessary dependencies $this->dispatcher->setResourceMetadataFactory($this->getMockResourceMetadataFactory()); $this->dispatcher->setServiceMetadataFactory($this->getMockServiceMetadataFactory($method)); $this->dispatcher->setServiceLocator($this->getMockServiceLocator()); $eventManager = $this->getMock('BedRest\\Events\\EventManager'); $this->dispatcher->setEventManager($eventManager); // form a basic request $request = new Request(); $request->setResource('testResource/nonExistentSub'); $request->setMethod($method); // test an exception is thrown $this->setExpectedException('BedRest\\Rest\\Exception', '', 404); $this->dispatcher->dispatch($request); }