Passed
Pull Request — master (#224)
by Alexander
07:32
created

CallbackTest::testProcessResult()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 15
rs 9.9666
c 1
b 0
f 0
1
<?php
2
3
namespace Yiisoft\Yii\Web\Tests\Middleware;
4
5
use PHPUnit\Framework\TestCase;
6
use Psr\Container\ContainerInterface;
7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Psr\Http\Server\RequestHandlerInterface;
10
use Yiisoft\Yii\Web\Middleware\Callback;
11
12
final class CallbackTest extends TestCase
13
{
14
    public function testProcess(): void
15
    {
16
        $request = $this->createMock(ServerRequestInterface::class);
17
        $container = $this->createMock(ContainerInterface::class);
18
        $handler = $this->createMock(RequestHandlerInterface::class);
19
20
        $requestPassed = false;
21
        $handlerPassed = false;
22
23
        $callback = function ($r, $h) use ($request, $handler, &$requestPassed, &$handlerPassed) {
24
            $handlerPassed = $request === $r;
25
            $requestPassed = $handler === $h;
26
27
            return $this->createMock(ResponseInterface::class);
28
        };
29
        $middleware = new Callback($callback, $container);
30
31
        $this->assertFalse($requestPassed);
32
        $this->assertFalse($handlerPassed);
33
34
        $middleware->process($request, $handler);
35
36
        $this->assertTrue($requestPassed);
37
        $this->assertTrue($handlerPassed);
38
    }
39
40
    public function testProcessResult(): void
41
    {
42
        $response = $this->createMock(ResponseInterface::class);
43
        $request = $this->createMock(ServerRequestInterface::class);
44
        $container = $this->createMock(ContainerInterface::class);
45
        $handler = $this->createMock(RequestHandlerInterface::class);
46
47
        $callback = static function () use ($response) {
48
            return $response;
49
        };
50
        $middleware = new Callback($callback, $container);
51
52
        $result = $middleware->process($request, $handler);
53
54
        $this->assertSame($response, $result);
55
    }
56
}
57