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

PhpUnitGuardCoverageConfigurator::configure()   B

Complexity

Conditions 3
Paths 3

Size

Total Lines 27
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 3

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 27
ccs 15
cts 15
cp 1
rs 8.8571
cc 3
eloc 15
nc 3
nop 2
crap 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