Skip to content

Commit

Permalink
Merge pull request #6 from roquie/fixed_middleware_error_exception
Browse files Browse the repository at this point in the history
Fixed middleware error exception if it uses in the negative case.
  • Loading branch information
dkraczkowski authored Nov 13, 2018
2 parents 5b9e64b + bb22c4f commit 4e99bed
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/Exception/MiddlewareException.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static function forInvalidMiddlewareResponse($response): self
{
$dumped = var_export($response, true);
return new self(sprintf(
"Middleware failed to produce valid response object, expected instance of `%s` got `%s`".
"Middleware failed to produce valid response object, expected instance of `%s` got `%s`",
ResponseInterface::class,
$dumped
));
Expand Down
2 changes: 1 addition & 1 deletion src/Http/Middleware/CallableMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Igni\Network\Http\Middleware;

use Igni\Application\Exception\MiddlewareException;
use Igni\Network\Exception\MiddlewareException;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php declare(strict_types=1);

namespace Igni\Tests\Functional\Network\Http\Middleware;

use Igni\Exception\RuntimeException;
use Igni\Network\Http\Middleware\CallableMiddleware;
use Igni\Network\Http\ServerRequest;
use Igni\Tests\Fixtures\CustomHttpException;
use Igni\Network\Http\Middleware\ErrorMiddleware;
use Mockery;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;

final class CallableMiddlewareTest extends TestCase
{
public function testCanInstantiate(): void
{
$middleware = new CallableMiddleware(function() {});
self::assertInstanceOf(CallableMiddleware::class, $middleware);
}

/**
* @expectedException \Igni\Network\Exception\MiddlewareException
*/
public function testNegativeUsageCase(): void
{
$middleware = new CallableMiddleware(function() {});
$middleware->process(
Mockery::mock(ServerRequestInterface::class),
Mockery::mock(RequestHandlerInterface::class)
);
}

public function testPositiveUsageCase(): void
{
$middleware = new CallableMiddleware(function(ServerRequestInterface $request, RequestHandlerInterface $next) {
return $next->handle($request);
});

$requestHandler = new class implements RequestHandlerInterface {
public function handle(ServerRequestInterface $request): ResponseInterface
{
return Mockery::mock(ResponseInterface::class);
}
};

$results = $middleware->process(Mockery::mock(ServerRequestInterface::class), $requestHandler);

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

0 comments on commit 4e99bed

Please sign in to comment.