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