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'])); }
public function testWithParams() { $apiDecider = new ApiDecider(); $apiDecider->addApiHandler(new EndpointIdentifier('GET', 1, 'test', 'api'), new EchoHandler(), new NoAuthorization()); $presenter = new ApiPresenter(); $presenter->apiDecider = $apiDecider; $presenter->injectPrimary(new Container(), null, null, new HttpRequest(new UrlScript('')), new HttpResponse()); $request = new Request('Api:Api:default', 'GET', ['version' => 1, 'package' => 'test', 'apiAction' => 'api']); $result = $presenter->run($request); $this->assertEquals(['status' => 'error', 'message' => 'wrong input'], $result->getPayload()); $this->assertEquals('application/json', $result->getContentType()); }
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']); }