Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianbergmann committed Feb 5, 2025
1 parent 842da15 commit 8aa25b8
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 3 deletions.
18 changes: 18 additions & 0 deletions tests/_files/Target/two_traits.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php declare(strict_types=1);
namespace SebastianBergmann\CodeCoverage\TestFixture\Target;

trait T1
{
public function one(): void
{
}
}

trait T2
{
use T1;

public function two(): void
{
}
}
140 changes: 137 additions & 3 deletions tests/tests/Target/MapBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
use PHPUnit\Framework\TestCase;
use SebastianBergmann\CodeCoverage\Filter;
use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingFileAnalyser;
use SebastianBergmann\CodeCoverage\TestFixture\Target\T1;
use SebastianBergmann\CodeCoverage\TestFixture\Target\T2;
use SebastianBergmann\CodeCoverage\TestFixture\Target\TraitOne;
use SebastianBergmann\CodeCoverage\TestFixture\Target\TraitTwo;

/**
* @phpstan-import-type TargetMap from Mapper
Expand All @@ -27,14 +31,17 @@
final class MapBuilderTest extends TestCase
{
/**
* @return non-empty-list<array{0: TargetMap, 1: non-empty-list<non-empty-string>}>
* @return non-empty-array<non-empty-string, array{0: TargetMap, 1: non-empty-list<non-empty-string>}>
*/
public static function provider(): array
{
$file = realpath(__DIR__ . '/../../_files/source_with_interfaces_classes_traits_functions.php');
$file = realpath(__DIR__ . '/../../_files/source_with_interfaces_classes_traits_functions.php');
$traitOne = realpath(__DIR__ . '/../../_files/Target/TraitOne.php');
$traitTwo = realpath(__DIR__ . '/../../_files/Target/TraitTwo.php');
$twoTraits = realpath(__DIR__ . '/../../_files/Target/two_traits.php');

return [
[
'generic' => [
[
'namespaces' => [
'SebastianBergmann' => [
Expand Down Expand Up @@ -145,6 +152,133 @@ public static function provider(): array
],
[$file],
],
'trait using trait declared in another file' => [
[
'namespaces' => [
'SebastianBergmann' => [
$traitOne => range(4, 9),
$traitTwo => range(4, 11),
],
'SebastianBergmann\\CodeCoverage' => [
$traitOne => range(4, 9),
$traitTwo => range(4, 11),
],
'SebastianBergmann\\CodeCoverage\\TestFixture' => [
$traitOne => range(4, 9),
$traitTwo => range(4, 11),
],
'SebastianBergmann\\CodeCoverage\\TestFixture\\Target' => [
$traitOne => range(4, 9),
$traitTwo => range(4, 11),
],
],
'traits' => [
TraitOne::class => [
$traitOne => range(4, 9),
],
TraitTwo::class => [
$traitTwo => range(4, 11),
$traitOne => range(4, 9),
],
],
'classes' => [
],
'classesThatExtendClass' => [
],
'classesThatImplementInterface' => [
],
'methods' => [
TraitOne::class . '::one' => [
$traitOne => range(6, 8),
],
TraitTwo::class . '::two' => [
$traitTwo => range(8, 10),
],
],
'functions' => [
],
'reverseLookup' => [
$traitOne . ':6' => TraitOne::class . '::one',
$traitOne . ':7' => TraitOne::class . '::one',
$traitOne . ':8' => TraitOne::class . '::one',
$traitTwo . ':8' => TraitTwo::class . '::two',
$traitTwo . ':9' => TraitTwo::class . '::two',
$traitTwo . ':10' => TraitTwo::class . '::two',
],
],
[
$traitOne,
$traitTwo,
],
],
'trait using trait declared in same file' => [
[
'namespaces' => [
'SebastianBergmann' => [
$twoTraits => array_merge(
range(4, 9),
range(11, 18),
),
],
'SebastianBergmann\\CodeCoverage' => [
$twoTraits => array_merge(
range(4, 9),
range(11, 18),
),
],
'SebastianBergmann\\CodeCoverage\\TestFixture' => [
$twoTraits => array_merge(
range(4, 9),
range(11, 18),
),
],
'SebastianBergmann\\CodeCoverage\\TestFixture\\Target' => [
$twoTraits => array_merge(
range(4, 9),
range(11, 18),
),
],
],
'traits' => [
T1::class => [
$twoTraits => range(4, 9),
],
T2::class => [
$twoTraits => array_merge(
range(11, 18),
range(4, 9),
),
],
],
'classes' => [
],
'classesThatExtendClass' => [
],
'classesThatImplementInterface' => [
],
'methods' => [
T1::class . '::one' => [
$twoTraits => range(6, 8),
],
T2::class . '::two' => [
$twoTraits => range(15, 17),
],
],
'functions' => [
],
'reverseLookup' => [
$twoTraits . ':6' => T1::class . '::one',
$twoTraits . ':7' => T1::class . '::one',
$twoTraits . ':8' => T1::class . '::one',
$twoTraits . ':15' => T2::class . '::two',
$twoTraits . ':16' => T2::class . '::two',
$twoTraits . ':17' => T2::class . '::two',
],
],
[
$twoTraits,
],
],
];
}

Expand Down

0 comments on commit 8aa25b8

Please sign in to comment.