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

ClientMiddlewareTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 36
rs 10
c 0
b 0
f 0
wmc 2
lcom 1
cbo 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testWithMiddlewareAppendsMiddleware() 0 15 1
A testWithPrependedMiddlewarePrependsMiddleware() 0 15 1
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