Example #1
0
 public function testGlobalPreflight()
 {
     $linkGenerator = new LinkGenerator(new SimpleRouter([]), new Url('http://test/'));
     $apiLink = new ApiLink($linkGenerator);
     $apiDecider = new ApiDecider($apiLink);
     $apiDecider->enableGlobalPreflight();
     $this->assertEquals(0, count($apiDecider->getHandlers()));
     $apiDecider->addApiHandler(new EndpointIdentifier('POST', 2, 'comments', 'list'), new AlwaysOkHandler(), new NoAuthorization());
     $this->assertEquals(1, count($apiDecider->getHandlers()));
     $handler = $apiDecider->getApiHandler('OPTIONS', 2, 'comments', 'list');
     $this->assertInstanceOf('Tomaj\\NetteApi\\Handlers\\CorsPreflightHandler', $handler['handler']);
 }
 public function testHandlerWithParam()
 {
     $linkGenerator = new LinkGenerator(new SimpleRouter([]), new Url('http://test/'));
     $apiLink = new ApiLink($linkGenerator);
     $apiDecider = new ApiDecider($apiLink);
     $apiDecider->addApiHandler(new EndpointIdentifier('POST', 1, 'comments', 'list'), new EchoHandler(), new NoAuthorization());
     $apiDecider->addApiHandler(new EndpointIdentifier('GET', 1, 'endpoints'), new ApiListingHandler($apiDecider, $apiLink), new NoAuthorization());
     $result = $apiDecider->getApiHandler('GET', 1, 'endpoints');
     $handler = $result['handler'];
     $response = $handler->handle([]);
     $this->assertEquals(200, $response->getCode());
     $payload = $response->getPayload();
     $this->assertEquals(2, count($payload['endpoints']));
     $this->assertEquals(2, count($payload['endpoints'][0]['params']));
 }
Example #3
0
 /**
  * Get handler information triplet (endpoint, handler, authorization)
  *
  * @return array
  */
 private function getHandler()
 {
     return $this->apiDecider->getApiHandler($this->getRequest()->getMethod(), $this->params['version'], $this->params['package'], $this->params['apiAction']);
 }