Skip to content

Commit 8aa25b8

Browse files
Add tests
1 parent 842da15 commit 8aa25b8

File tree

2 files changed

+155
-3
lines changed

2 files changed

+155
-3
lines changed

tests/_files/Target/two_traits.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php declare(strict_types=1);
2+
namespace SebastianBergmann\CodeCoverage\TestFixture\Target;
3+
4+
trait T1
5+
{
6+
public function one(): void
7+
{
8+
}
9+
}
10+
11+
trait T2
12+
{
13+
use T1;
14+
15+
public function two(): void
16+
{
17+
}
18+
}

tests/tests/Target/MapBuilderTest.php

+137-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
use PHPUnit\Framework\TestCase;
1919
use SebastianBergmann\CodeCoverage\Filter;
2020
use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingFileAnalyser;
21+
use SebastianBergmann\CodeCoverage\TestFixture\Target\T1;
22+
use SebastianBergmann\CodeCoverage\TestFixture\Target\T2;
23+
use SebastianBergmann\CodeCoverage\TestFixture\Target\TraitOne;
24+
use SebastianBergmann\CodeCoverage\TestFixture\Target\TraitTwo;
2125

2226
/**
2327
* @phpstan-import-type TargetMap from Mapper
@@ -27,14 +31,17 @@
2731
final class MapBuilderTest extends TestCase
2832
{
2933
/**
30-
* @return non-empty-list<array{0: TargetMap, 1: non-empty-list<non-empty-string>}>
34+
* @return non-empty-array<non-empty-string, array{0: TargetMap, 1: non-empty-list<non-empty-string>}>
3135
*/
3236
public static function provider(): array
3337
{
34-
$file = realpath(__DIR__ . '/../../_files/source_with_interfaces_classes_traits_functions.php');
38+
$file = realpath(__DIR__ . '/../../_files/source_with_interfaces_classes_traits_functions.php');
39+
$traitOne = realpath(__DIR__ . '/../../_files/Target/TraitOne.php');
40+
$traitTwo = realpath(__DIR__ . '/../../_files/Target/TraitTwo.php');
41+
$twoTraits = realpath(__DIR__ . '/../../_files/Target/two_traits.php');
3542

3643
return [
37-
[
44+
'generic' => [
3845
[
3946
'namespaces' => [
4047
'SebastianBergmann' => [
@@ -145,6 +152,133 @@ public static function provider(): array
145152
],
146153
[$file],
147154
],
155+
'trait using trait declared in another file' => [
156+
[
157+
'namespaces' => [
158+
'SebastianBergmann' => [
159+
$traitOne => range(4, 9),
160+
$traitTwo => range(4, 11),
161+
],
162+
'SebastianBergmann\\CodeCoverage' => [
163+
$traitOne => range(4, 9),
164+
$traitTwo => range(4, 11),
165+
],
166+
'SebastianBergmann\\CodeCoverage\\TestFixture' => [
167+
$traitOne => range(4, 9),
168+
$traitTwo => range(4, 11),
169+
],
170+
'SebastianBergmann\\CodeCoverage\\TestFixture\\Target' => [
171+
$traitOne => range(4, 9),
172+
$traitTwo => range(4, 11),
173+
],
174+
],
175+
'traits' => [
176+
TraitOne::class => [
177+
$traitOne => range(4, 9),
178+
],
179+
TraitTwo::class => [
180+
$traitTwo => range(4, 11),
181+
$traitOne => range(4, 9),
182+
],
183+
],
184+
'classes' => [
185+
],
186+
'classesThatExtendClass' => [
187+
],
188+
'classesThatImplementInterface' => [
189+
],
190+
'methods' => [
191+
TraitOne::class . '::one' => [
192+
$traitOne => range(6, 8),
193+
],
194+
TraitTwo::class . '::two' => [
195+
$traitTwo => range(8, 10),
196+
],
197+
],
198+
'functions' => [
199+
],
200+
'reverseLookup' => [
201+
$traitOne . ':6' => TraitOne::class . '::one',
202+
$traitOne . ':7' => TraitOne::class . '::one',
203+
$traitOne . ':8' => TraitOne::class . '::one',
204+
$traitTwo . ':8' => TraitTwo::class . '::two',
205+
$traitTwo . ':9' => TraitTwo::class . '::two',
206+
$traitTwo . ':10' => TraitTwo::class . '::two',
207+
],
208+
],
209+
[
210+
$traitOne,
211+
$traitTwo,
212+
],
213+
],
214+
'trait using trait declared in same file' => [
215+
[
216+
'namespaces' => [
217+
'SebastianBergmann' => [
218+
$twoTraits => array_merge(
219+
range(4, 9),
220+
range(11, 18),
221+
),
222+
],
223+
'SebastianBergmann\\CodeCoverage' => [
224+
$twoTraits => array_merge(
225+
range(4, 9),
226+
range(11, 18),
227+
),
228+
],
229+
'SebastianBergmann\\CodeCoverage\\TestFixture' => [
230+
$twoTraits => array_merge(
231+
range(4, 9),
232+
range(11, 18),
233+
),
234+
],
235+
'SebastianBergmann\\CodeCoverage\\TestFixture\\Target' => [
236+
$twoTraits => array_merge(
237+
range(4, 9),
238+
range(11, 18),
239+
),
240+
],
241+
],
242+
'traits' => [
243+
T1::class => [
244+
$twoTraits => range(4, 9),
245+
],
246+
T2::class => [
247+
$twoTraits => array_merge(
248+
range(11, 18),
249+
range(4, 9),
250+
),
251+
],
252+
],
253+
'classes' => [
254+
],
255+
'classesThatExtendClass' => [
256+
],
257+
'classesThatImplementInterface' => [
258+
],
259+
'methods' => [
260+
T1::class . '::one' => [
261+
$twoTraits => range(6, 8),
262+
],
263+
T2::class . '::two' => [
264+
$twoTraits => range(15, 17),
265+
],
266+
],
267+
'functions' => [
268+
],
269+
'reverseLookup' => [
270+
$twoTraits . ':6' => T1::class . '::one',
271+
$twoTraits . ':7' => T1::class . '::one',
272+
$twoTraits . ':8' => T1::class . '::one',
273+
$twoTraits . ':15' => T2::class . '::two',
274+
$twoTraits . ':16' => T2::class . '::two',
275+
$twoTraits . ':17' => T2::class . '::two',
276+
],
277+
],
278+
[
279+
$twoTraits,
280+
],
281+
],
148282
];
149283
}
150284

0 commit comments

Comments
 (0)