Skip to content

Commit 8b2a994

Browse files
authored
Merge pull request #76 from patxi1980/min_coverage
Output coverage.
2 parents c672344 + 4501167 commit 8b2a994

File tree

5 files changed

+55
-10
lines changed

5 files changed

+55
-10
lines changed

src/PhpGitHooks/Module/PhpUnit/Service/GuardCoverageTool.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function run($warningMessage)
6363
{
6464
$outputMessage = new PreCommitOutputWriter(self::CHECKING_MESSAGE);
6565
$this->output->write($outputMessage->getMessage());
66-
66+
6767
$this->currentCoverage = $this->strictCoverageProcessor->process();
6868
$this->previousCoverage = $this->guardReader->read();
6969

@@ -75,7 +75,9 @@ public function run($warningMessage)
7575
$this->previousCoverage,
7676
$this->currentCoverage
7777
)
78-
) : $this->output->writeln($outputMessage->getSuccessfulMessage());
78+
) : $this->output->writeln(
79+
$outputMessage->getSuccessfulMessage() . $this->printGuardCoverage()
80+
);
7981

8082
$this->guardWriter->write($this->currentCoverage);
8183
}
@@ -87,4 +89,16 @@ private function isLowerCurrentCoverage()
8789
{
8890
return $this->currentCoverage < $this->previousCoverage;
8991
}
92+
93+
/**
94+
* @return string
95+
*/
96+
private function printGuardCoverage()
97+
{
98+
return ' <comment>[' .
99+
round($this->currentCoverage, 0) .
100+
'% >= ' .
101+
round($this->previousCoverage, 0) .
102+
'%]</comment>';
103+
}
90104
}

src/PhpGitHooks/Module/PhpUnit/Service/StrictCoverageTool.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class StrictCoverageTool
2323
* StrictCoverageTool constructor.
2424
*
2525
* @param StrictCoverageProcessorInterface $strictCoverageProcessor
26-
* @param OutputInterface $output
26+
* @param OutputInterface $output
2727
*/
2828
public function __construct(StrictCoverageProcessorInterface $strictCoverageProcessor, OutputInterface $output)
2929
{
@@ -33,18 +33,21 @@ public function __construct(StrictCoverageProcessorInterface $strictCoverageProc
3333

3434
/**
3535
* @param MinimumStrictCoverage $minimumStrictCoverage
36-
* @param string $errorMessage
36+
* @param string $errorMessage
3737
*
38+
* @return float
3839
* @throws InvalidStrictCoverageException
3940
*/
4041
public function run(MinimumStrictCoverage $minimumStrictCoverage, $errorMessage)
4142
{
4243
$currentCoverage = $this->strictCoverageProcessor->process();
4344

4445
if ($minimumStrictCoverage->value() > $currentCoverage) {
45-
$this->output->writeln(BadJobLogoResponse::paint($errorMessage));
46+
$this->output->writeln(BadJobLogoResponse::paint($errorMessage));
4647

4748
throw new InvalidStrictCoverageException($currentCoverage, $minimumStrictCoverage->value());
4849
}
50+
51+
return $currentCoverage;
4952
}
5053
}

src/PhpGitHooks/Module/PhpUnit/Service/StrictCoverageToolExecutor.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,16 @@ public function execute(MinimumStrictCoverage $minimumStrictCoverage, $errorMess
3333
{
3434
$outputMessage = new PreCommitOutputWriter(self::EXECUTE_MESSAGE);
3535
$this->output->write($outputMessage->getMessage());
36-
$this->strictCoverageTool->run($minimumStrictCoverage, $errorMessage);
37-
$this->output->writeln($outputMessage->getSuccessfulMessage());
36+
$currentCoverage = $this->strictCoverageTool->run($minimumStrictCoverage, $errorMessage);
37+
$this->output->writeln($outputMessage->getSuccessfulMessage() . $this->printCurrentCoverage($currentCoverage));
38+
}
39+
40+
/**
41+
* @param $currentCoverage
42+
* @return string
43+
*/
44+
private function printCurrentCoverage($currentCoverage)
45+
{
46+
return ' <comment>[' . round($currentCoverage, 0) . '%]</comment>';
3847
}
3948
}

src/PhpGitHooks/Module/PhpUnit/Tests/Behaviour/GuardCoverageToolCommandHandlerTest.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,22 @@ public function itShouldWorksFine()
6767
$this->shouldProcessStrictCoverage($currentCoverage);
6868
$this->shouldWriteOutput($outputMessage->getMessage());
6969
$this->shouldReadGuardCoverage($previousCoverage);
70-
$this->shouldWriteLnOutput($outputMessage->getSuccessfulMessage());
70+
$this->shouldWriteLnOutput($this->buildStrictCoverageSuccessfulMessage($currentCoverage, $previousCoverage,
71+
$outputMessage->getSuccessfulMessage()));
7172
$this->shouldWriteGuardCoverage($currentCoverage);
7273

7374
$this->guardCoverageToolCommandHandler->handle(
7475
new GuardCoverageCommand(HookQuestions::PHPUNIT_GUARD_COVERAGE_MESSAGE_DEFAULT)
7576
);
7677
}
78+
79+
private function buildStrictCoverageSuccessfulMessage($currentCoverage, $previousCoverage, $getSuccessfulMessage)
80+
{
81+
return $getSuccessfulMessage .
82+
' <comment>[' .
83+
round($currentCoverage, 0) .
84+
'% >= ' .
85+
round($previousCoverage, 0) .
86+
'%]</comment>';
87+
}
7788
}

src/PhpGitHooks/Module/PhpUnit/Tests/Behaviour/StrictCoverageToolCommandHandlerTest.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,19 @@ public function itShouldWorksFine()
6464
$minimumStrictCoverage = MinimumStrictCoverageStub::create(90.00);
6565
$outputMessage = new PreCommitOutputWriter(StrictCoverageToolExecutor::EXECUTE_MESSAGE);
6666

67+
$coverage = 91.00;
68+
6769
$this->shouldWriteOutput($outputMessage->getMessage());
68-
$this->shouldProcessStrictCoverage(91.00);
69-
$this->shouldWriteLnOutput($outputMessage->getSuccessfulMessage());
70+
$this->shouldProcessStrictCoverage($coverage);
71+
$this->shouldWriteLnOutput($this->buildStrictCoverageSuccessfulMessage($coverage,
72+
$outputMessage->getSuccessfulMessage()));
7073

7174
$command = new StrictCoverageCommand($minimumStrictCoverage->value(), $this->errorMessage);
7275
$this->strictCoverageToolCommandHandler->handle($command);
7376
}
77+
78+
private function buildStrictCoverageSuccessfulMessage($coverage, $getSuccessfulMessage)
79+
{
80+
return $getSuccessfulMessage . ' <comment>[' . round($coverage, 0) . '%]</comment>';
81+
}
7482
}

0 commit comments

Comments
 (0)