Passed
Pull Request — master (#224)
by
unknown
13:06
created

CallbackTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 25
dl 0
loc 43
rs 10
c 2
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testProcessResult() 0 15 1
A testProcess() 0 24 1
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