|
2 | 2 |
|
3 | 3 | namespace Tests\Legionth\React\Http\Rest;
|
4 | 4 |
|
| 5 | +use Legionth\React\Http\Rest\Paramaters\Label\CurlyBrackets; |
5 | 6 | use Legionth\React\Http\Rest\Server;
|
6 | 7 | use Psr\Http\Message\ServerRequestInterface;
|
7 | 8 |
|
@@ -270,4 +271,34 @@ public function testNoSuchCallDefinedResultInNeverCalled()
|
270 | 271 |
|
271 | 272 | $this->assertSame(null, $requestAssertion);
|
272 | 273 | }
|
| 274 | + |
| 275 | + public function testApiWithCurlyBracketsCanExtractParamters() |
| 276 | + { |
| 277 | + $requestAssertion = null; |
| 278 | + $idAssertion = null; |
| 279 | + $nameAssertion = null; |
| 280 | + |
| 281 | + $server = new Server(); |
| 282 | + |
| 283 | + $server->put('/user/add/{id}/group/{name}', function (ServerRequestInterface $request, callable $next, array $parameters) use (&$requestAssertion, &$idAssertion, &$nameAssertion) { |
| 284 | + $requestAssertion = $request; |
| 285 | + $idAssertion = $parameters['id']; |
| 286 | + $nameAssertion = $parameters['name']; |
| 287 | + }); |
| 288 | + |
| 289 | + $server->listen($this->socket, null, new CurlyBrackets()); |
| 290 | + |
| 291 | + $this->socket->emit('connection', array($this->connection)); |
| 292 | + $this->connection->emit('data', array("PUT http://example.com/user/add/10/group/reactphp HTTP/1.0\r\n\r\n")); |
| 293 | + |
| 294 | + $this->assertInstanceOf('RingCentral\Psr7\Request', $requestAssertion); |
| 295 | + $this->assertSame('PUT', $requestAssertion->getMethod()); |
| 296 | + $this->assertSame('http://example.com/user/add/10/group/reactphp', $requestAssertion->getRequestTarget()); |
| 297 | + $this->assertEquals('http://example.com/user/add/10/group/reactphp', $requestAssertion->getUri()); |
| 298 | + $this->assertSame('/user/add/10/group/reactphp', $requestAssertion->getUri()->getPath()); |
| 299 | + $this->assertSame('example.com', $requestAssertion->getHeaderLine('Host')); |
| 300 | + |
| 301 | + $this->assertEquals('10', $idAssertion); |
| 302 | + $this->assertEquals('reactphp', $nameAssertion); |
| 303 | + } |
273 | 304 | }
|
0 commit comments