Factory::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Maba\DatabaseInconsistencyFinder\Service;
5
6
use Maba\DatabaseInconsistencyFinder\Database\QueryExecutor;
7
use Maba\DatabaseInconsistencyFinder\Entity\ReferencesConfiguration;
8
use Maba\DatabaseInconsistencyFinder\InconsistencyFinder;
9
use Maba\DatabaseInconsistencyFinder\JobDistribution\SynchronousJobDistributorFactory;
10
11
class Factory
12
{
13
    private $sizeForSeeking;
14
    private $sizeForJobDistribution;
15
16 4
    public function __construct(int $sizeForSeeking = 1000, int $sizeForJobDistribution = 10000)
17
    {
18 4
        $this->sizeForSeeking = $sizeForSeeking;
19 4
        $this->sizeForJobDistribution = $sizeForJobDistribution;
20 4
    }
21
22 4
    public function createInconsistencyFinder(ReferencesConfiguration $referencesConfiguration): InconsistencyFinder
23
    {
24 4
        $queryExecutor = new QueryExecutor();
25 4
        $intervalManager = new IntervalManager($this->sizeForSeeking, $this->sizeForJobDistribution);
26 4
        return new InconsistencyFinder(
27 4
            $referencesConfiguration,
28 4
            $queryExecutor,
29 4
            $intervalManager,
30 4
            new SynchronousJobDistributorFactory(
31 4
                new Worker(
32 4
                    new FastConsistencyValidator(
33 4
                        $referencesConfiguration,
34 4
                        $queryExecutor
35
                    ),
36 4
                    new InconsistencySeeker(
37 4
                        $referencesConfiguration,
38 4
                        $queryExecutor
39
                    ),
40 4
                    $intervalManager
41
                )
42
            )
43
        );
44
    }
45
}
46