Skip to content

Commit 842da15

Browse files
Refactor
1 parent 30b6142 commit 842da15

File tree

1 file changed

+120
-108
lines changed

1 file changed

+120
-108
lines changed

tests/tests/Target/MapBuilderTest.php

+120-108
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use function range;
1414
use function realpath;
1515
use PHPUnit\Framework\Attributes\CoversClass;
16+
use PHPUnit\Framework\Attributes\DataProvider;
1617
use PHPUnit\Framework\Attributes\Small;
1718
use PHPUnit\Framework\TestCase;
1819
use SebastianBergmann\CodeCoverage\Filter;
@@ -25,121 +26,132 @@
2526
#[Small]
2627
final class MapBuilderTest extends TestCase
2728
{
28-
public function testBuildsMap(): void
29+
/**
30+
* @return non-empty-list<array{0: TargetMap, 1: non-empty-list<non-empty-string>}>
31+
*/
32+
public static function provider(): array
2933
{
3034
$file = realpath(__DIR__ . '/../../_files/source_with_interfaces_classes_traits_functions.php');
3135

32-
$this->assertSame(
36+
return [
3337
[
34-
'namespaces' => [
35-
'SebastianBergmann' => [
36-
$file => array_merge(
37-
range(19, 24),
38-
range(26, 31),
39-
range(33, 52),
40-
range(54, 56),
41-
),
42-
],
43-
'SebastianBergmann\\CodeCoverage' => [
44-
$file => array_merge(
45-
range(19, 24),
46-
range(26, 31),
47-
range(33, 52),
48-
range(54, 56),
49-
),
50-
],
51-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis' => [
52-
$file => array_merge(
53-
range(19, 24),
54-
range(26, 31),
55-
range(33, 52),
56-
range(54, 56),
57-
),
58-
],
59-
],
60-
'traits' => [
61-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\T' => [
62-
$file => range(19, 24),
63-
],
64-
],
65-
'classes' => [
66-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParentClass' => [
67-
$file => range(26, 31),
68-
],
69-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass' => [
70-
$file => array_merge(
71-
range(33, 52),
72-
range(19, 24),
73-
),
74-
],
75-
],
76-
'classesThatExtendClass' => [
77-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParentClass' => [
78-
$file => range(33, 52),
79-
],
80-
],
81-
'classesThatImplementInterface' => [
82-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\A' => [
83-
$file => range(33, 52),
84-
],
85-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\B' => [
86-
$file => range(33, 52),
38+
[
39+
'namespaces' => [
40+
'SebastianBergmann' => [
41+
$file => array_merge(
42+
range(19, 24),
43+
range(26, 31),
44+
range(33, 52),
45+
range(54, 56),
46+
),
47+
],
48+
'SebastianBergmann\\CodeCoverage' => [
49+
$file => array_merge(
50+
range(19, 24),
51+
range(26, 31),
52+
range(33, 52),
53+
range(54, 56),
54+
),
55+
],
56+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis' => [
57+
$file => array_merge(
58+
range(19, 24),
59+
range(26, 31),
60+
range(33, 52),
61+
range(54, 56),
62+
),
63+
],
64+
],
65+
'traits' => [
66+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\T' => [
67+
$file => range(19, 24),
68+
],
69+
],
70+
'classes' => [
71+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParentClass' => [
72+
$file => range(26, 31),
73+
],
74+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass' => [
75+
$file => array_merge(
76+
range(33, 52),
77+
range(19, 24),
78+
),
79+
],
80+
],
81+
'classesThatExtendClass' => [
82+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParentClass' => [
83+
$file => range(33, 52),
84+
],
85+
],
86+
'classesThatImplementInterface' => [
87+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\A' => [
88+
$file => range(33, 52),
89+
],
90+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\B' => [
91+
$file => range(33, 52),
92+
],
93+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\C' => [
94+
$file => range(26, 31),
95+
],
96+
],
97+
'methods' => [
98+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\T::four' => [
99+
$file => range(21, 23),
100+
],
101+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParentClass::five' => [
102+
$file => range(28, 30),
103+
],
104+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::six' => [
105+
$file => range(37, 39),
106+
],
107+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::one' => [
108+
$file => range(41, 43),
109+
],
110+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::two' => [
111+
$file => range(45, 47),
112+
],
113+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::three' => [
114+
$file => range(49, 51),
115+
],
116+
],
117+
'functions' => [
118+
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\f' => [
119+
$file => range(54, 56),
120+
],
121+
],
122+
'reverseLookup' => [
123+
$file . ':21' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\T::four',
124+
$file . ':22' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\T::four',
125+
$file . ':23' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\T::four',
126+
$file . ':28' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ParentClass::five',
127+
$file . ':29' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ParentClass::five',
128+
$file . ':30' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ParentClass::five',
129+
$file . ':37' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::six',
130+
$file . ':38' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::six',
131+
$file . ':39' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::six',
132+
$file . ':41' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::one',
133+
$file . ':42' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::one',
134+
$file . ':43' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::one',
135+
$file . ':45' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::two',
136+
$file . ':46' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::two',
137+
$file . ':47' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::two',
138+
$file . ':49' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::three',
139+
$file . ':50' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::three',
140+
$file . ':51' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::three',
141+
$file . ':54' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\f',
142+
$file . ':55' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\f',
143+
$file . ':56' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\f',
87144
],
88-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\C' => [
89-
$file => range(26, 31),
90-
],
91-
],
92-
'methods' => [
93-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\T::four' => [
94-
$file => range(21, 23),
95-
],
96-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParentClass::five' => [
97-
$file => range(28, 30),
98-
],
99-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::six' => [
100-
$file => range(37, 39),
101-
],
102-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::one' => [
103-
$file => range(41, 43),
104-
],
105-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::two' => [
106-
$file => range(45, 47),
107-
],
108-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ChildClass::three' => [
109-
$file => range(49, 51),
110-
],
111-
],
112-
'functions' => [
113-
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\f' => [
114-
$file => range(54, 56),
115-
],
116-
],
117-
'reverseLookup' => [
118-
$file . ':21' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\T::four',
119-
$file . ':22' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\T::four',
120-
$file . ':23' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\T::four',
121-
$file . ':28' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ParentClass::five',
122-
$file . ':29' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ParentClass::five',
123-
$file . ':30' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ParentClass::five',
124-
$file . ':37' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::six',
125-
$file . ':38' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::six',
126-
$file . ':39' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::six',
127-
$file . ':41' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::one',
128-
$file . ':42' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::one',
129-
$file . ':43' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::one',
130-
$file . ':45' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::two',
131-
$file . ':46' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::two',
132-
$file . ':47' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::two',
133-
$file . ':49' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::three',
134-
$file . ':50' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::three',
135-
$file . ':51' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\ChildClass::three',
136-
$file . ':54' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\f',
137-
$file . ':55' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\f',
138-
$file . ':56' => 'SebastianBergmann\CodeCoverage\StaticAnalysis\f',
139145
],
146+
[$file],
140147
],
141-
$this->map([__DIR__ . '/../../_files/source_with_interfaces_classes_traits_functions.php']),
142-
);
148+
];
149+
}
150+
151+
#[DataProvider('provider')]
152+
public function testBuildsMap(array $expected, array $files): void
153+
{
154+
$this->assertSame($expected, $this->map($files));
143155
}
144156

145157
/**

0 commit comments

Comments
 (0)