Skip to content

Commit cd9a848

Browse files
committed
add additional tests for --metrics option
1 parent 82a1dcb commit cd9a848

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

tests/Configuration/ConfigurationFactoryTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ protected function createInput(array $input)
1616
$inputDefinition = new InputDefinition([
1717
new InputArgument('filename', InputArgument::REQUIRED),
1818
new InputOption('require', 'r', InputOption::VALUE_REQUIRED),
19+
new InputOption('metric', 'm', InputOption::VALUE_REQUIRED),
1920
new InputOption('coverage-only', 'C', InputOption::VALUE_NONE),
2021
]);
2122

@@ -67,4 +68,17 @@ public function it_does_not_throw_an_exception_when_validating_the_configuration
6768

6869
$this->assertFalse($hasException);
6970
}
71+
72+
/** @test */
73+
public function it_throws_an_exception_when_validating_the_metric_field_with_an_invalid_value()
74+
{
75+
$filename = realpath(__DIR__.'/../data/coverage-clover.xml');
76+
77+
$input = $this->createInput(['filename' => $filename, '--metric' => 'bad']);
78+
$config = ConfigurationFactory::create($input);
79+
80+
$this->expectException(\InvalidArgumentException::class);
81+
82+
$config->validate();
83+
}
7084
}

tests/CoverageCheckerTest.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class CoverageCheckerTest extends TestCase
1111
/** @test */
1212
public function it_gets_the_coverage_percentage()
1313
{
14-
$config = new Configuration(__DIR__ . '/data/coverage-clover.xml', false, false, 'element');
14+
$config = new Configuration(__DIR__ . '/data/coverage-clover.xml', false, false, false, 'element');
1515
$checker = new CoverageChecker(__DIR__ . '/data/coverage-clover.xml', $config);
1616

1717
$this->assertEquals(89.8765, round($checker->getCoveragePercent(), 4));
@@ -20,10 +20,28 @@ public function it_gets_the_coverage_percentage()
2020
/** @test */
2121
public function it_checks_for_a_minimum_coverage_percentage()
2222
{
23-
$config = new Configuration(__DIR__ . '/data/coverage-clover.xml', false, false, 'element');
23+
$config = new Configuration(__DIR__ . '/data/coverage-clover.xml', false, false, false, 'element');
2424
$checker = new CoverageChecker(__DIR__ . '/data/coverage-clover.xml', $config);
2525

2626
$this->assertTrue($checker->check(75));
2727
$this->assertFalse($checker->check(99));
2828
}
29+
30+
/** @test */
31+
public function it_gets_the_coverage_percentage_for_the_statement_metric()
32+
{
33+
$config = new Configuration(__DIR__ . '/data/coverage-clover.xml', false, false, false, 'statement');
34+
$checker = new CoverageChecker(__DIR__ . '/data/coverage-clover.xml', $config);
35+
36+
$this->assertEquals(90.6279, round($checker->getCoveragePercent(), 4));
37+
}
38+
39+
/** @test */
40+
public function it_gets_the_coverage_percentage_for_the_method_metric()
41+
{
42+
$config = new Configuration(__DIR__ . '/data/coverage-clover.xml', false, false, false, 'method');
43+
$checker = new CoverageChecker(__DIR__ . '/data/coverage-clover.xml', $config);
44+
45+
$this->assertEquals(87.4439, $checker->getCoveragePercent());
46+
}
2947
}

0 commit comments

Comments
 (0)