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 105 106 107 108 109 110 111
|
<?php
/**
* Test the Ruleset::getIgnorePatterns() method.
*
* @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl>
* @copyright 2024 PHPCSStandards and contributors
* @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
*/
namespace PHP_CodeSniffer\Tests\Core\Ruleset;
use PHP_CodeSniffer\Ruleset;
use PHP_CodeSniffer\Tests\ConfigDouble;
use PHPUnit\Framework\TestCase;
/**
* Test the Ruleset::getIgnorePatterns() method.
*
* @covers \PHP_CodeSniffer\Ruleset::getIgnorePatterns
*/
final class GetIgnorePatternsTest extends TestCase
{
/**
* The Ruleset object.
*
* @var \PHP_CodeSniffer\Ruleset
*/
private static $ruleset;
/**
* Initialize the config and ruleset objects for this test.
*
* @beforeClass
*
* @return void
*/
public static function initializeConfigAndRuleset()
{
// Set up the ruleset.
$standard = __DIR__."/GetIgnorePatternsTest.xml";
$config = new ConfigDouble(["--standard=$standard"]);
self::$ruleset = new Ruleset($config);
}//end initializeConfigAndRuleset()
/**
* Test retrieving ignore patterns.
*
* @param string|null $listener The listener to get patterns for or null for all patterns.
* @param array<string, string|array<string, string>> $expected The expected function output.
*
* @dataProvider dataGetIgnorePatterns
*
* @return void
*/
public function testGetIgnorePatterns($listener, $expected)
{
$this->assertSame($expected, self::$ruleset->getIgnorePatterns($listener));
}//end testGetIgnorePatterns()
/**
* Data provider.
*
* @see self::testGetIgnorePatterns()
*
* @return array<string, array<string, string|array<string, string|array<string, string>>|null>>
*/
public static function dataGetIgnorePatterns()
{
return [
'All ignore patterns' => [
'listener' => null,
'expected' => [
'PSR1.Classes.ClassDeclaration' => [
'./src/*/file.php' => 'absolute',
'./bin/' => 'relative',
],
'Generic.Formatting.SpaceAfterCast' => [
'./src/*/test\\.php$' => 'absolute',
],
'./tests/' => 'absolute',
'./vendor/*' => 'absolute',
'*/node-modules/*' => 'relative',
],
],
'Ignore patterns for PSR1.Classes.ClassDeclaration' => [
'listener' => 'PSR1.Classes.ClassDeclaration',
'expected' => [
'./src/*/file.php' => 'absolute',
'./bin/' => 'relative',
],
],
'Ignore patterns for Generic.Formatting.SpaceAfterCast' => [
'listener' => 'Generic.Formatting.SpaceAfterCast',
'expected' => ['./src/*/test\\.php$' => 'absolute'],
],
'Ignore patterns for sniff without ignore patterns' => [
'listener' => 'PSR1.Files.SideEffects',
'expected' => [],
],
];
}//end dataGetIgnorePatterns()
}//end class
|