Completed
Push — master ( ee6bc9...3f15df )
by Eugene
01:30
created

testWithPrependedMiddlewarePrependsMiddleware()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 15
rs 9.7666
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * This file is part of the tarantool/client package.
5
 *
6
 * (c) Eugene Leonovich <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Tarantool\Client\Tests\Unit;
15
16
use PHPUnit\Framework\TestCase;
17
use Tarantool\Client\Tests\SpyMiddleware;
18
use Tarantool\PhpUnit\Client\TestDoubleClient;
19
20
final class ClientMiddlewareTest extends TestCase
21
{
22
    use TestDoubleClient;
23
24
    public function testWithMiddlewareAppendsMiddleware() : void
25
    {
26
        $trace = new \ArrayObject();
27
        $middleware1 = SpyMiddleware::fromTraceId(1, $trace);
28
        $middleware2 = SpyMiddleware::fromTraceId(2, $trace);
29
        $middleware3 = SpyMiddleware::fromTraceId(3, $trace);
30
        $middleware4 = SpyMiddleware::fromTraceId(4, $trace);
31
32
        $client = $this->createDummyClient()->withMiddleware($middleware1, $middleware2);
33
        $client = $client->withMiddleware($middleware3, $middleware4);
34
35
        $client->ping();
36
37
        self::assertSame([1, 2, 3, 4], $trace->getArrayCopy());
38
    }
39
40
    public function testWithPrependedMiddlewarePrependsMiddleware() : void
41
    {
42
        $trace = new \ArrayObject();
43
        $middleware1 = SpyMiddleware::fromTraceId(1, $trace);
44
        $middleware2 = SpyMiddleware::fromTraceId(2, $trace);
45
        $middleware3 = SpyMiddleware::fromTraceId(3, $trace);
46
        $middleware4 = SpyMiddleware::fromTraceId(4, $trace);
47
48
        $client = $this->createDummyClient()->withPrependedMiddleware($middleware1, $middleware2);
49
        $client = $client->withPrependedMiddleware($middleware3, $middleware4);
50
51
        $client->ping();
52
53
        self::assertSame([3, 4, 1, 2], $trace->getArrayCopy());
54
    }
55
}
56