Completed
Push — master ( 00332a...7db68b )
by Eugene
09:26
created

testFromDefaultsCreatesClientWithPeclPacker()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 6
rs 10
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\Integration;
15
16
use PHPUnit\Framework\TestCase;
0 ignored issues
show
Bug introduced by
This use statement conflicts with another class in this namespace, Tarantool\Client\Tests\Integration\TestCase.

Let’s assume that you have a directory layout like this:

.
|-- OtherDir
|   |-- Bar.php
|   `-- Foo.php
`-- SomeDir
    `-- Foo.php

and let’s assume the following content of Bar.php:

// Bar.php
namespace OtherDir;

use SomeDir\Foo; // This now conflicts the class OtherDir\Foo

If both files OtherDir/Foo.php and SomeDir/Foo.php are loaded in the same runtime, you will see a PHP error such as the following:

PHP Fatal error:  Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php

However, as OtherDir/Foo.php does not necessarily have to be loaded and the error is only triggered if it is loaded before OtherDir/Bar.php, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias:

// Bar.php
namespace OtherDir;

use SomeDir\Foo as SomeDirFoo; // There is no conflict anymore.
Loading history...
17
use Tarantool\Client\Client;
18
use Tarantool\Client\Packer\Packer;
19
use Tarantool\Client\Packer\PurePacker;
20
21
final class ClientFactoryTest extends TestCase
22
{
23
    /**
24
     * @group only-pure-packer
25
     */
26
    public function testFromDefaultsCreatesClientWithPurePacker() : void
27
    {
28
        $client = Client::fromDefaults();
29
30
        self::assertInstanceOf(PurePacker::class, $client->getHandler()->getPacker());
31
    }
32
33
    /**
34
     * @group only-pecl-packer
35
     */
36
    public function testFromDefaultsCreatesClientWithPeclPacker() : void
37
    {
38
        $client = Client::fromDefaults();
39
40
        self::assertInstanceOf(PurePacker::class, $client->getHandler()->getPacker());
41
    }
42
43
    /**
44
     * @group only-pure-packer
45
     */
46
    public function testFromOptionsCreatesClientWithPurePacker() : void
47
    {
48
        $client = Client::fromOptions(['uri' => 'tcp://tnt']);
49
50
        self::assertInstanceOf(PurePacker::class, $client->getHandler()->getPacker());
51
    }
52
53
    /**
54
     * @group only-pecl-packer
55
     */
56
    public function testFromOptionsCreatesClientWithPeclPacker() : void
57
    {
58
        $client = Client::fromOptions(['uri' => 'tcp://tnt']);
59
60
        self::assertInstanceOf(PurePacker::class, $client->getHandler()->getPacker());
61
    }
62
63
    public function testFromOptionsCreatesClientWithCustomPacker() : void
64
    {
65
        $packer = $this->createMock(Packer::class);
66
        $client = Client::fromOptions(['uri' => 'tcp://tnt'], $packer);
67
68
        self::assertSame($packer, $client->getHandler()->getPacker());
69
    }
70
71
    /**
72
     * @group only-pure-packer
73
     */
74
    public function testFromDsnCreatesClientWithPurePacker() : void
75
    {
76
        $client = Client::fromDsn('tcp://tnt');
77
78
        self::assertInstanceOf(PurePacker::class, $client->getHandler()->getPacker());
79
    }
80
81
    /**
82
     * @group only-pecl-packer
83
     */
84
    public function testFromDsnCreatesClientWithPeclPacker() : void
85
    {
86
        $client = Client::fromDsn('tcp://tnt');
87
88
        self::assertInstanceOf(PurePacker::class, $client->getHandler()->getPacker());
89
    }
90
91
    public function testFromDsnCreatesClientWithCustomPacker() : void
92
    {
93
        $packer = $this->createMock(Packer::class);
94
        $client = Client::fromDsn('tcp://tnt', $packer);
95
96
        self::assertSame($packer, $client->getHandler()->getPacker());
97
    }
98
}
99