Skip to content

Commit a6fc952

Browse files
committed
Simplify test cases with BaseTestCase
1 parent 56903a6 commit a6fc952

File tree

3 files changed

+38
-16
lines changed

3 files changed

+38
-16
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
namespace VariableAnalysis\Tests;
3+
4+
use PHPUnit\Framework\TestCase;
5+
use PHP_CodeSniffer\Files\LocalFile;
6+
use PHP_CodeSniffer\Ruleset;
7+
use PHP_CodeSniffer\Config;
8+
9+
class BaseTestCase extends TestCase {
10+
public function prepareLocalFileForSniffs($sniffFiles, string $fixtureFile): LocalFile {
11+
$config = new Config();
12+
$ruleset = new Ruleset($config);
13+
if (! is_array($sniffFiles)) {
14+
$sniffFiles = [$sniffFiles];
15+
}
16+
$ruleset->registerSniffs($sniffFiles, [], []);
17+
$ruleset->populateTokenListeners();
18+
return new LocalFile($fixtureFile, $ruleset, $config);
19+
}
20+
21+
public function getLineNumbersFromMessages(array $messages): array {
22+
return array_keys($messages);
23+
}
24+
25+
public function getWarningLineNumbersFromFile(LocalFile $phpcsFile): array {
26+
return $this->getLineNumbersFromMessages($phpcsFile->getWarnings());
27+
}
28+
29+
public function getErrorLineNumbersFromFile(LocalFile $phpcsFile): array {
30+
return $this->getLineNumbersFromMessages($phpcsFile->getErrors());
31+
}
32+
}

VariableAnalysis/Tests/CodeAnalysis/VariableAnalysisUnitTest.php

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
<?php
22
namespace VariableAnalysis\Tests;
33

4-
use PHPUnit\Framework\TestCase;
54
use PHP_CodeSniffer\Files\LocalFile;
65
use PHP_CodeSniffer\Ruleset;
76
use PHP_CodeSniffer\Config;
87

9-
class VariableAnalysisUnitTest extends TestCase {
8+
class VariableAnalysisUnitTest extends BaseTestCase {
109
public function testAllErrors() {
1110
$fixtureFile = __DIR__ . '/VariableAnalysisUnitTestFixture.php';
1211
$sniffFiles = [__DIR__ . '/../../../VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php'];
13-
$config = new Config();
14-
$ruleset = new Ruleset($config);
15-
$ruleset->registerSniffs($sniffFiles, [], []);
16-
$ruleset->populateTokenListeners();
17-
$phpcsFile = new LocalFile($fixtureFile, $ruleset, $config);
12+
$phpcsFile = $this->prepareLocalFileForSniffs($sniffFiles, $fixtureFile);
1813
$phpcsFile->process();
19-
$foundErrors = $phpcsFile->getErrors();
20-
$lines = array_keys($foundErrors);
14+
$lines = $this->getErrorLineNumbersFromFile($phpcsFile);
2115
$expectedErrors = [
2216
185,
2317
189,
@@ -29,14 +23,9 @@ public function testAllErrors() {
2923
public function testAllWarnings() {
3024
$fixtureFile = __DIR__ . '/VariableAnalysisUnitTestFixture.php';
3125
$sniffFiles = [__DIR__ . '/../../../VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php'];
32-
$config = new Config();
33-
$ruleset = new Ruleset($config);
34-
$ruleset->registerSniffs($sniffFiles, [], []);
35-
$ruleset->populateTokenListeners();
36-
$phpcsFile = new LocalFile($fixtureFile, $ruleset, $config);
26+
$phpcsFile = $this->prepareLocalFileForSniffs($sniffFiles, $fixtureFile);
3727
$phpcsFile->process();
38-
$foundWarnings = $phpcsFile->getWarnings();
39-
$lines = array_keys($foundWarnings);
28+
$lines = $this->getWarningLineNumbersFromFile($phpcsFile);
4029
$expectedWarnings = [
4130
4,
4231
5,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
<?php
22
require_once(__DIR__ . '/../../vendor/squizlabs/php_codesniffer/tests/bootstrap.php');
3+
require_once(__DIR__ . '/BaseTestCase.php');

0 commit comments

Comments
 (0)