-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathPhpunitDiffFilterTest.php
More file actions
104 lines (91 loc) · 2.69 KB
/
Copy pathPhpunitDiffFilterTest.php
File metadata and controls
104 lines (91 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
namespace exussum12\CoverageChecker\tests;
use PHPUnit\Framework\TestCase;
use Exception;
/**
* Ignored due to acceptance test needing to write values
* @SuppressWarnings(PHPMD.Superglobals)
*/
class PhpunitDiffFilterTest extends TestCase
{
use TestShim;
public function testWrongArgs()
{
$this->expectException(Exception::class);
$this->expectExceptionCode(1);
$GLOBALS['argv'] = [];
require(__DIR__ . "/../src/Runners/generic.php");
}
public function testInvalidFileReturnsNoLinesFound()
{
$GLOBALS['argv'] = [
'diffFilter',
'--phpunit',
__DIR__ . '/fixtures/change.txt',
__DIR__ . '/fixtures/coverage.xml'
];
try {
ob_start();
require(__DIR__ . "/../src/Runners/generic.php");
} catch (Exception $e) {
ob_end_clean();
$this->assertContainsString('No lines found', $e->getMessage());
return;
}
$this->fail("No Exception thrown");
}
public function testFailingBuild()
{
$GLOBALS['argv'] = [
'diffFilter',
'--phpunit',
'--report=json',
__DIR__ . '/fixtures/newFile.txt',
__DIR__ . '/fixtures/coverage-change.xml',
'70',
];
try {
ob_start();
require(__DIR__ . '/../src/Runners/generic.php');
} catch (Exception $e) {
$output = ob_get_clean();
$this->assertEquals(2, $e->getCode());
$this->assertContainsString('66.67', $output);
$this->assertContainsString('Failed', $output);
return;
}
$this->fail("no exception thrown");
}
public function testPassingLowPercentage()
{
$GLOBALS['argv'] = [
'diffFilter',
'--phpunit',
__DIR__ . '/fixtures/newFile.txt',
__DIR__ . '/fixtures/coverage-change.xml',
'60',
];
ob_start();
require(__DIR__ . '/../src/Runners/generic.php');
$output = ob_get_clean();
$this->assertContainsString('66.67%', $output);
}
public function testNoCoveredLines()
{
$GLOBALS['argv'] = [
'diffFilter',
'--phpunit',
__DIR__ . '/fixtures/removeFile.txt',
__DIR__ . '/fixtures/coverage-change.xml',
];
try {
ob_start();
require(__DIR__ . '/../src/Runners/generic.php');
} catch (Exception $e) {
ob_end_clean();
$this->assertEquals(3, $e->getCode());
return;
}
$this->fail("no exception thrown");
}
}