Completed
Branch guard_coverage (f2aaf0)
by Pablo
03:07
created

PhpUnitGuardCoverageConfigurator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 4
c 2
b 1
f 0
lcom 1
cbo 5
dl 0
loc 50
ccs 18
cts 18
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B configure() 0 27 3
1
<?php
2
3
namespace PhpGitHooks\Module\Configuration\Service;
4
5
use Composer\IO\IOInterface;
6
use PhpGitHooks\Module\Configuration\Domain\Enabled;
7
use PhpGitHooks\Module\Configuration\Domain\Message;
8
use PhpGitHooks\Module\Configuration\Domain\PhpUnitGuardCoverage;
9
10
class PhpUnitGuardCoverageConfigurator
11
{
12
    /**
13
     * @var PhpGuardCoverageGitIgnoreConfigurator
14
     */
15
    private $coverageGitIgnoreConfigurator;
16
17
    /**
18
     * PhpUnitGuardCoverageConfigurator constructor.
19
     * @param PhpGuardCoverageGitIgnoreConfigurator $coverageGitIgnoreConfigurator
20
     */
21 3
    public function __construct(PhpGuardCoverageGitIgnoreConfigurator $coverageGitIgnoreConfigurator)
22
    {
23 3
        $this->coverageGitIgnoreConfigurator = $coverageGitIgnoreConfigurator;
24 3
    }
25
26
    /**
27
     * @param IOInterface $input
28
     * @param PhpUnitGuardCoverage $phpUnitGuardCoverage
29
     *
30
     * @return PhpUnitGuardCoverage
31
     */
32 2
    public function configure(IOInterface $input, PhpUnitGuardCoverage $phpUnitGuardCoverage)
33
    {
34 2
        if (true === $phpUnitGuardCoverage->isUndefined()) {
35 1
            $guardCoverageAnswer = $input->ask(
36 1
                HookQuestions::PHPUNIT_GUARD_COVERAGE,
37 1
                HookQuestions::DEFAULT_TOOL_ANSWER
38
            );
39
40 1
            $phpUnitGuardCoverage = $phpUnitGuardCoverage->setEnabled(
41 1
                new Enabled(HookQuestions::DEFAULT_TOOL_ANSWER === strtoupper($guardCoverageAnswer))
42
            );
43
44 1
            if (true === $phpUnitGuardCoverage->isEnabled()) {
45 1
                $defaultMessage = $input->ask(
46 1
                    HookQuestions::PHPUNIT_GUARD_COVERAGE_MESSAGE,
47 1
                    HookQuestions::PHPUNIT_GUARD_COVERAGE_MESSAGE_DEFAULT
48
                );
49
                /** @var PhpUnitGuardCoverage $phpUnitGuardCoverage */
50 1
                $phpUnitGuardCoverage = $phpUnitGuardCoverage->setWarningMessage(
51 1
                    new Message($defaultMessage)
52
                );
53
                
54 1
                $this->coverageGitIgnoreConfigurator->configure();
55
            }
56
        }
57 2
            return $phpUnitGuardCoverage;
58
    }
59
}
60