Passed
Push — master ( 1849ae...73997f )
by Felipe
01:57
created

testImplementPsrServerRequestHandler()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
/*
3
 * This file is part of coisa/http.
4
 *
5
 * (c) Felipe Sayão Lobato Abreu <[email protected]>
6
 *
7
 * This source file is subject to the license that is bundled
8
 * with this source code in the file LICENSE.
9
 */
10
11
namespace CoiSA\Http\Test\Middleware;
12
13
use CoiSA\Http\Middleware\RequestHandlerMiddleware;
14
use CoiSA\Http\Test\Handler\AbstractMiddlewareTest;
15
use Psr\Http\Server\RequestHandlerInterface;
16
17
/**
18
 * Class RequestHandlerMiddlewareTest
19
 *
20
 * @package CoiSA\Http\Test
21
 */
22
final class RequestHandlerMiddlewareTest extends AbstractMiddlewareTest
23
{
24
    /** @var array */
25
    private $execution = [];
26
27
    public function setUp(): void
28
    {
29
        parent::setUp();
30
31
        $this->middleware = new RequestHandlerMiddleware($this->handler->reveal());
32
33
        $testClass = $this;
34
        $this->handler->handle($this->serverRequest->reveal())->will(function () use ($testClass) {
35
            $testClass->execution[] = \spl_object_hash($this);
36
37
            return $testClass->response->reveal();
38
        });
39
        $this->nextHandler->handle($this->serverRequest->reveal())->will(function () use ($testClass) {
40
            $testClass->execution[] = \spl_object_hash($this);
41
42
            return $testClass->nextResponse->reveal();
43
        });
44
    }
45
46
    public function testImplementPsrServerRequestHandler(): void
47
    {
48
        $this->assertInstanceOf(RequestHandlerInterface::class, $this->middleware);
49
    }
50
51
    public function testHandleReturnHandlerResponse(): void
52
    {
53
        $serverRequest  = $this->serverRequest->reveal();
54
        $response       = $this->middleware->handle($serverRequest);
0 ignored issues
show
Bug introduced by
The method handle() does not exist on Psr\Http\Server\MiddlewareInterface. It seems like you code against a sub-type of Psr\Http\Server\MiddlewareInterface such as CoiSA\Http\Handler\MiddlewareHandler or CoiSA\Http\Middleware\RequestHandlerMiddleware or CoiSA\Http\ApplicationInterface. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

54
        /** @scrutinizer ignore-call */ 
55
        $response       = $this->middleware->handle($serverRequest);
Loading history...
55
        $requestHandler = $this->handler->reveal();
56
        $this->assertEquals($requestHandler->handle($serverRequest), $response);
57
    }
58
59
    public function testProcessExecuteBothHandlersInOrder(): void
60
    {
61
        $expected = [
62
            \spl_object_hash($this->handler),
63
            \spl_object_hash($this->nextHandler),
64
        ];
65
        $this->middleware->process($this->serverRequest->reveal(), $this->nextHandler->reveal());
66
        $this->assertEquals($expected, $this->execution);
67
    }
68
69
    public function testProcessReturnResponseFromDependencyHandler(): void
70
    {
71
        $serverRequest  = $this->serverRequest->reveal();
72
        $response       = $this->middleware->process($serverRequest, $this->nextHandler->reveal());
73
        $requestHandler = $this->handler->reveal();
74
        $this->assertEquals($requestHandler->handle($serverRequest), $response);
75
    }
76
}
77