Completed
Push — master ( a8b608...dc5b75 )
by Valentin
02:10
created

ConflictResolverTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 3
dl 0
loc 41
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace Cycle\ORM\Promise\Tests\Declaration\ConflictResolver;
5
6
use Cycle\ORM\Promise\ConflictResolver;
7
use PHPUnit\Framework\TestCase;
8
use Spiral\Core\Container;
9
10
class ConflictResolverTest extends TestCase
11
{
12
    /**
13
     * @dataProvider cdProvider
14
     *
15
     * @param array $reserved
16
     * @param array $input
17
     * @param array $expected
18
     */
19
    public function testFind(array $reserved, array $input, array $expected)
20
    {
21
        $resolver = $this->conflictResolver();
22
23
        foreach ($input as $i => $name) {
24
            $this->assertEquals($expected[$i], $resolver->resolve($reserved, $name));
25
        }
26
    }
27
28
    private function conflictResolver(): ConflictResolver
29
    {
30
        $container = new Container();
31
32
        return $container->get(ConflictResolver::class);
33
    }
34
35
    public function cdProvider(): array
36
    {
37
        return [
38
            [
39
                [],
40
                ['v2', 'v', 'vv'],
41
                ['v2', 'v', 'vv']
42
            ],
43
            [
44
                ['v', 'v2'],
45
                ['v2', 'v', 'v1', 'vv', 't1', 't2'],
46
                ['v3', 'v3', 'v1', 'vv', 't1', 't2']
47
            ],
48
        ];
49
    }
50
}