northwoods /
conditional-middleware
| 1 | <?php |
||||
| 2 | declare(strict_types=1); |
||||
| 3 | |||||
| 4 | namespace Northwoods\Middleware; |
||||
| 5 | |||||
| 6 | use InvalidArgumentException; |
||||
| 7 | use Northwoods\Middleware\Fixture\Handler; |
||||
| 8 | use Northwoods\Middleware\Fixture\Middleware; |
||||
| 9 | use Nyholm\Psr7\ServerRequest; |
||||
| 10 | use PHPUnit\Framework\TestCase; |
||||
| 11 | use Psr\Container\ContainerInterface; |
||||
|
0 ignored issues
–
show
|
|||||
| 12 | use Psr\Http\Server\MiddlewareInterface; |
||||
| 13 | |||||
| 14 | class ConditionalMiddlewareTest extends TestCase |
||||
| 15 | { |
||||
| 16 | public function testCallsActualMiddlewareWhenConditionMatches(): void |
||||
| 17 | { |
||||
| 18 | $middleware = new ConditionalMiddleware(new Middleware(), function ($request) { |
||||
| 19 | return $request->getHeaderLine('accept') === 'application/json'; |
||||
| 20 | }); |
||||
| 21 | |||||
| 22 | $handler = new Handler(); |
||||
| 23 | $request = new ServerRequest('GET', 'https://example.com'); |
||||
| 24 | $request = $request->withHeader('accept', 'application/json'); |
||||
| 25 | |||||
| 26 | $response = $middleware->process($request, $handler); |
||||
| 27 | |||||
| 28 | $this->assertEquals(200, $response->getStatusCode()); |
||||
| 29 | $this->assertEquals(Middleware::class, (string) $response->getBody()); |
||||
| 30 | } |
||||
| 31 | |||||
| 32 | public function testDoesNotCallActualMiddlewareWhenConditionFails(): void |
||||
| 33 | { |
||||
| 34 | $middleware = new ConditionalMiddleware(new Middleware(), function ($request) { |
||||
| 35 | return $request->getHeaderLine('accept') === 'application/json'; |
||||
| 36 | }); |
||||
| 37 | |||||
| 38 | $handler = new Handler(); |
||||
| 39 | $request = new ServerRequest('GET', 'https://example.com'); |
||||
| 40 | |||||
| 41 | $response = $middleware->process($request, $handler); |
||||
| 42 | |||||
| 43 | $this->assertEquals(400, $response->getStatusCode()); |
||||
| 44 | $this->assertEquals(Handler::class, (string) $response->getBody()); |
||||
| 45 | } |
||||
| 46 | |||||
| 47 | public function testDoesNotCallActualMiddlewareUnlessConditionReturnsTrue(): void |
||||
| 48 | { |
||||
| 49 | $middleware = new ConditionalMiddleware(new Middleware(), function ($request) { |
||||
|
0 ignored issues
–
show
The parameter
$request is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||
| 50 | return 'okay'; |
||||
| 51 | }); |
||||
| 52 | |||||
| 53 | $handler = new Handler(); |
||||
| 54 | $request = new ServerRequest('GET', 'https://example.com'); |
||||
| 55 | |||||
| 56 | $response = $middleware->process($request, $handler); |
||||
| 57 | |||||
| 58 | $this->assertEquals(400, $response->getStatusCode()); |
||||
| 59 | $this->assertEquals(Handler::class, (string) $response->getBody()); |
||||
| 60 | } |
||||
| 61 | } |
||||
| 62 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths