Passed
Push — master ( 03ea78...8fc551 )
by Harry
10:08
created

MysqlTableChopperTest::testChop()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 27
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 18
nc 1
nop 0
dl 0
loc 27
rs 9.6666
c 0
b 0
f 0
1
<?php
2
/**
3
 * This file is part of graze/sprout.
4
 *
5
 * Copyright © 2018 Nature Delivered Ltd. <https://www.graze.com>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 *
10
 * @license https://github.com/graze/sprout/blob/master/LICENSE.md
11
 * @link    https://github.com/graze/sprout
12
 */
13
14
namespace Graze\Sprout\Test\Unit\Db\Mysql;
15
16
use Graze\ParallelProcess\Pool;
17
use Graze\Sprout\Config\ConnectionConfigInterface;
18
use Graze\Sprout\Db\Mysql\MysqlTableChopper;
19
use Graze\Sprout\Test\TestCase;
20
use Mockery;
21
use Symfony\Component\Process\Process;
22
23
/**
24
 * @runTestsInSeparateProcesses
25
 * @preserveGlobalState disabled
26
 */
27
class MysqlTableChopperTest extends TestCase
28
{
29
    public function testChop()
30
    {
31
        $process = Mockery::mock('overload:' . Process::class);
32
33
        $process->shouldReceive('setCommandLine')
34
                ->with('mysql -h\'some-host\' -u\'some-user\' -p\'some-pass\' --default-character-set=utf8 --execute=\'TRUNCATE `some-table`\' \'some-schema\'')
35
                ->once();
36
37
        $config = Mockery::mock(ConnectionConfigInterface::class);
38
        $config->shouldReceive('getHost')
39
               ->andReturn('some-host');
40
        $config->shouldReceive('getUser')
41
               ->andReturn('some-user');
42
        $config->shouldReceive('getPassword')
43
               ->andReturn('some-pass');
44
45
        $pool = Mockery::mock(Pool::class);
46
47
        $pool->shouldReceive('add')
48
             ->with(
49
                 Mockery::type(Process::class),
50
                 ['chop', 'schema' => 'some-schema', 'table' => 'some-table']
51
             );
52
53
        $tableChopper = new MysqlTableChopper($pool, $config);
0 ignored issues
show
Bug introduced by
$config of type Mockery\MockInterface is incompatible with the type Graze\Sprout\Config\ConnectionConfigInterface expected by parameter $connection of Graze\Sprout\Db\Mysql\My...eChopper::__construct(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

53
        $tableChopper = new MysqlTableChopper($pool, /** @scrutinizer ignore-type */ $config);
Loading history...
Bug introduced by
$pool of type Mockery\MockInterface is incompatible with the type Graze\ParallelProcess\Pool expected by parameter $pool of Graze\Sprout\Db\Mysql\My...eChopper::__construct(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

53
        $tableChopper = new MysqlTableChopper(/** @scrutinizer ignore-type */ $pool, $config);
Loading history...
54
55
        $tableChopper->chop('some-schema', 'some-table');
56
    }
57
}
58