Completed
Push — master ( 6ef701...eb43cb )
by Alessandro
13s
created

CoverageContainerDefinition::configure()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

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