CoverageContainerDefinition::configure()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 6
cts 6
cp 1
rs 9.9332
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Paraunit\Configuration\DependencyInjection;
6
7
use Paraunit\Configuration\PHPDbgBinFile;
8
use Paraunit\Configuration\PHPUnitBinFile;
9
use Paraunit\Configuration\PHPUnitConfig;
10
use Paraunit\Configuration\TempFilenameFactory;
11
use Paraunit\Coverage\CoverageFetcher;
12
use Paraunit\Coverage\CoverageMerger;
13
use Paraunit\Coverage\CoverageResult;
14
use Paraunit\Printer\CoveragePrinter;
15
use Paraunit\Process\CommandLineWithCoverage;
16
use Paraunit\Process\ProcessFactoryInterface;
17
use Paraunit\Proxy\XDebugProxy;
18
use Symfony\Component\Console\Output\OutputInterface;
19
use Symfony\Component\DependencyInjection\ContainerBuilder;
20
use Symfony\Component\DependencyInjection\Definition;
21
use Symfony\Component\DependencyInjection\Reference;
22
23
class CoverageContainerDefinition extends ParallelContainerDefinition
24
{
25 15
    public function configure(ContainerBuilder $container): ContainerBuilder
26
    {
27 15
        parent::configure($container);
28
29 15
        $this->configureCoverageConfiguration($container);
30 15
        $this->configureProcessWithCoverage($container);
31 15
        $this->configureCoverage($container);
32
33 15
        return $container;
34
    }
35
36 15
    private function configureCoverageConfiguration(ContainerBuilder $container)
37
    {
38 15
        $container->setDefinition(PHPDbgBinFile::class, new Definition(PHPDbgBinFile::class));
39 15
        $container->setDefinition(XDebugProxy::class, new Definition(XDebugProxy::class));
40
    }
41
42 15
    private function configureProcessWithCoverage(ContainerBuilder $container)
43
    {
44 15
        $container->setDefinition(CommandLineWithCoverage::class, new Definition(CommandLineWithCoverage::class, [
45 15
            new Reference(PHPUnitBinFile::class),
46 15
            new Reference(PHPDbgBinFile::class),
47 15
            new Reference(TempFilenameFactory::class),
48
        ]));
49 15
        $container->getDefinition(ProcessFactoryInterface::class)
50 15
            ->setArguments([
51 15
            new Reference(CommandLineWithCoverage::class),
52 15
            new Reference(PHPUnitConfig::class),
53 15
            new Reference(TempFilenameFactory::class),
54
        ]);
55
    }
56
57 15
    private function configureCoverage(ContainerBuilder $container)
58
    {
59 15
        $container->setDefinition(CoverageFetcher::class, new Definition(CoverageFetcher::class, [
60 15
            new Reference(TempFilenameFactory::class),
61 15
            new Reference('paraunit.test_result.coverage_failure_container'),
62
        ]));
63 15
        $container->setDefinition(CoverageMerger::class, new Definition(CoverageMerger::class, [
64 15
            new Reference(CoverageFetcher::class),
65
        ]));
66 15
        $container->setDefinition(CoverageResult::class, new Definition(CoverageResult::class, [
67 15
            new Reference(CoverageMerger::class),
68
        ]));
69 15
        $container->setDefinition(CoveragePrinter::class, new Definition(CoveragePrinter::class, [
70 15
            new Reference(PHPDbgBinFile::class),
71 15
            new Reference(XDebugProxy::class),
72 15
            new Reference(OutputInterface::class),
73
        ]));
74
    }
75
}
76