Skip to content

Commit db02f0d

Browse files
committed
Tests/Ruleset: start using the new AbstractRulesetTestCase
Start using the new `AbstractRulesetTestCase` in pre-existing `Ruleset` tests.
1 parent a25d8cf commit db02f0d

File tree

3 files changed

+13
-42
lines changed

3 files changed

+13
-42
lines changed

tests/Core/Ruleset/RuleInclusionTest.php

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@
1111

1212
use PHP_CodeSniffer\Ruleset;
1313
use PHP_CodeSniffer\Tests\ConfigDouble;
14-
use PHPUnit\Framework\TestCase;
15-
use ReflectionObject;
14+
use PHP_CodeSniffer\Tests\Core\Ruleset\AbstractRulesetTestCase;
1615

1716
/**
1817
* Tests for the \PHP_CodeSniffer\Ruleset class.
1918
*
2019
* @covers \PHP_CodeSniffer\Ruleset
2120
*/
22-
final class RuleInclusionTest extends TestCase
21+
final class RuleInclusionTest extends AbstractRulesetTestCase
2322
{
2423

2524
/**
@@ -352,10 +351,7 @@ public static function dataRegisteredSniffCodes()
352351
public function testSettingProperties($sniffClass, $propertyName, $expectedValue)
353352
{
354353
$this->assertArrayHasKey($sniffClass, self::$ruleset->sniffs);
355-
356-
$hasProperty = (new ReflectionObject(self::$ruleset->sniffs[$sniffClass]))->hasProperty($propertyName);
357-
$errorMsg = sprintf('Property %s does not exist on sniff class %s', $propertyName, $sniffClass);
358-
$this->assertTrue($hasProperty, $errorMsg);
354+
$this->assertXObjectHasProperty($propertyName, self::$ruleset->sniffs[$sniffClass]);
359355

360356
$actualValue = self::$ruleset->sniffs[$sniffClass]->$propertyName;
361357
$this->assertSame($expectedValue, $actualValue);
@@ -444,10 +440,7 @@ public static function dataSettingProperties()
444440
public function testSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails($sniffClass, $propertyName)
445441
{
446442
$this->assertArrayHasKey($sniffClass, self::$ruleset->sniffs, 'Sniff class '.$sniffClass.' not listed in registered sniffs');
447-
448-
$hasProperty = (new ReflectionObject(self::$ruleset->sniffs[$sniffClass]))->hasProperty($propertyName);
449-
$errorMsg = sprintf('Property %s registered for sniff %s which does not support it', $propertyName, $sniffClass);
450-
$this->assertFalse($hasProperty, $errorMsg);
443+
$this->assertXObjectNotHasProperty($propertyName, self::$ruleset->sniffs[$sniffClass]);
451444

452445
}//end testSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails()
453446

tests/Core/Ruleset/SetSniffPropertyTest.php

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111

1212
use PHP_CodeSniffer\Ruleset;
1313
use PHP_CodeSniffer\Tests\ConfigDouble;
14-
use PHPUnit\Framework\TestCase;
14+
use PHP_CodeSniffer\Tests\Core\Ruleset\AbstractRulesetTestCase;
1515
use ReflectionObject;
1616

1717
/**
1818
* These tests specifically focus on the changes made to work around the PHP 8.2 dynamic properties deprecation.
1919
*
2020
* @covers \PHP_CodeSniffer\Ruleset::setSniffProperty
2121
*/
22-
final class SetSniffPropertyTest extends TestCase
22+
final class SetSniffPropertyTest extends AbstractRulesetTestCase
2323
{
2424

2525

@@ -135,15 +135,8 @@ public function testSetPropertyAppliesPropertyToMultipleSniffsInCategory()
135135
*/
136136
public function testSetPropertyThrowsErrorOnInvalidProperty()
137137
{
138-
$exceptionClass = 'PHP_CodeSniffer\Exceptions\RuntimeException';
139-
$exceptionMsg = 'Ruleset invalid. Property "indentation" does not exist on sniff Generic.Arrays.ArrayIndent';
140-
if (method_exists($this, 'expectException') === true) {
141-
$this->expectException($exceptionClass);
142-
$this->expectExceptionMessage($exceptionMsg);
143-
} else {
144-
// PHPUnit < 5.2.0.
145-
$this->setExpectedException($exceptionClass, $exceptionMsg);
146-
}
138+
$exceptionMsg = 'Ruleset invalid. Property "indentation" does not exist on sniff Generic.Arrays.ArrayIndent';
139+
$this->expectRuntimeExceptionMessage($exceptionMsg);
147140

148141
// Set up the ruleset.
149142
$standard = __DIR__.'/SetPropertyThrowsErrorOnInvalidPropertyTest.xml';
@@ -162,15 +155,8 @@ public function testSetPropertyThrowsErrorOnInvalidProperty()
162155
*/
163156
public function testSetPropertyThrowsErrorWhenPropertyOnlyAllowedViaAttribute()
164157
{
165-
$exceptionClass = 'PHP_CodeSniffer\Exceptions\RuntimeException';
166-
$exceptionMsg = 'Ruleset invalid. Property "arbitrarystring" does not exist on sniff TestStandard.SetProperty.NotAllowedViaAttribute';
167-
if (method_exists($this, 'expectException') === true) {
168-
$this->expectException($exceptionClass);
169-
$this->expectExceptionMessage($exceptionMsg);
170-
} else {
171-
// PHPUnit < 5.2.0.
172-
$this->setExpectedException($exceptionClass, $exceptionMsg);
173-
}
158+
$exceptionMsg = 'Ruleset invalid. Property "arbitrarystring" does not exist on sniff TestStandard.SetProperty.NotAllowedViaAttribute';
159+
$this->expectRuntimeExceptionMessage($exceptionMsg);
174160

175161
// Set up the ruleset.
176162
$standard = __DIR__.'/SetPropertyNotAllowedViaAttributeTest.xml';

tests/Core/Ruleset/ShowSniffDeprecationsTest.php

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111

1212
use PHP_CodeSniffer\Ruleset;
1313
use PHP_CodeSniffer\Tests\ConfigDouble;
14-
use PHPUnit\Framework\TestCase;
14+
use PHP_CodeSniffer\Tests\Core\Ruleset\AbstractRulesetTestCase;
1515

1616
/**
1717
* Tests PHPCS native handling of sniff deprecations.
1818
*
1919
* @covers \PHP_CodeSniffer\Ruleset::hasSniffDeprecations
2020
* @covers \PHP_CodeSniffer\Ruleset::showSniffDeprecations
2121
*/
22-
final class ShowSniffDeprecationsTest extends TestCase
22+
final class ShowSniffDeprecationsTest extends AbstractRulesetTestCase
2323
{
2424

2525

@@ -452,15 +452,7 @@ public function testDeprecatedSniffsAreListedAlphabetically()
452452
*/
453453
public function testExceptionIsThrownOnIncorrectlyImplementedInterface($standard, $exceptionMessage)
454454
{
455-
$exception = 'PHP_CodeSniffer\Exceptions\RuntimeException';
456-
if (method_exists($this, 'expectException') === true) {
457-
// PHPUnit 5+.
458-
$this->expectException($exception);
459-
$this->expectExceptionMessage($exceptionMessage);
460-
} else {
461-
// PHPUnit 4.
462-
$this->setExpectedException($exception, $exceptionMessage);
463-
}
455+
$this->expectRuntimeExceptionMessage($exceptionMessage);
464456

465457
// Set up the ruleset.
466458
$standard = __DIR__.'/'.$standard;

0 commit comments

Comments
 (0)