Skip to content

Commit

Permalink
Test handler as middleware
Browse files Browse the repository at this point in the history
  • Loading branch information
ztsu committed Feb 19, 2018
1 parent e566431 commit bbc2e9d
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions tests/ReaconTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,65 @@ public function testShouldBeMiddleware()

$this->assertInstanceOf(MiddlewareInterface::class, $reacon);
}

public function testShouldBeUsedAsMiddleware()
{
$request = $this->createMock(ServerRequestInterface::class);

$middleware1 = $this->createMock(MiddlewareInterface::class);
$middleware1->expects($this->once())
->method("process")
->willReturnCallback(
function(
\Psr\Http\Message\ServerRequestInterface $request,
RequestHandlerInterface $handler
) {
return $handler->handle($request);
}
);

$middleware2 = $this->createMock(MiddlewareInterface::class);
$middleware2->expects($this->once())
->method("process")
->with($request)
->willReturnCallback(
function(
\Psr\Http\Message\ServerRequestInterface $request,
RequestHandlerInterface $handler
) {
return $this->createMock(ResponseInterface::class);
}
);

$reacon1 = new Reacon(
[
$middleware1,
$middleware2,
]
);

$middleware3 = $this->createMock(MiddlewareInterface::class);
$middleware3->expects($this->once())
->method("process")
->with($request)
->willReturnCallback(
function(
\Psr\Http\Message\ServerRequestInterface $request,
RequestHandlerInterface $handler
) {
return $handler->handle($request);
}
);

$reacon2 = new Reacon(
[
$middleware3,
$reacon1,
]
);

$response = $reacon2->handle($request);

$this->assertInstanceOf(ResponseInterface::class, $response);
}
}

0 comments on commit bbc2e9d

Please sign in to comment.