Skip to content

Commit

Permalink
Do not use AssertTokensTrait (#508)
Browse files Browse the repository at this point in the history
  • Loading branch information
kubawerlos committed Apr 18, 2021
1 parent 791f128 commit 541b9ea
Showing 1 changed file with 30 additions and 18 deletions.
48 changes: 30 additions & 18 deletions tests/Fixer/AbstractFixerTestCase.php
Expand Up @@ -17,7 +17,7 @@
use PhpCsFixer\Fixer\DefinedFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Linter\Linter;
use PhpCsFixer\Tests\Test\Assert\AssertTokensTrait;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
use PHPUnit\Framework\TestCase;
use Tests\AssertRegExpTrait;
Expand All @@ -28,7 +28,6 @@
abstract class AbstractFixerTestCase extends TestCase
{
use AssertRegExpTrait;
use AssertTokensTrait;

/** @var DefinedFixerInterface */
protected $fixer;
Expand Down Expand Up @@ -130,32 +129,30 @@ final protected function doTest(string $expected, ?string $input = null, ?array
throw new \InvalidArgumentException('Expected must be different to input.');
}

self::assertNull($this->lintSource($expected));

Tokens::clearCache();
$expectedTokens = Tokens::fromCode($expected);

if ($input !== null) {
Tokens::clearCache();
$tokens = Tokens::fromCode($input);

self::assertTrue($this->fixer->isCandidate($tokens));
$inputTokens = Tokens::fromCode($input);

$this->fixer->fix($this->createMock(\SplFileInfo::class), $tokens);
self::assertTrue($this->fixer->isCandidate($inputTokens));

$tokens->clearEmptyTokens();
$this->fixer->fix($this->createMock(\SplFileInfo::class), $inputTokens);
$inputTokens->clearEmptyTokens();

self::assertSame($expected, $tokens->generateCode());
self::assertSame($expected, $inputTokens->generateCode());

Tokens::clearCache();
self::assertTokens(Tokens::fromCode($expected), $tokens);
self::assertSameTokens($expectedTokens, $inputTokens);
}

self::assertNull($this->lintSource($expected));
$this->fixer->fix($this->createMock(\SplFileInfo::class), $expectedTokens);

Tokens::clearCache();
$tokens = Tokens::fromCode($expected);
self::assertSame($expected, $expectedTokens->generateCode());

$this->fixer->fix($this->createMock(\SplFileInfo::class), $tokens);

self::assertSame($expected, $tokens->generateCode());

self::assertFalse($tokens->isChanged());
self::assertFalse($expectedTokens->isChanged());
}

private function lintSource(string $source): ?string
Expand All @@ -174,4 +171,19 @@ private function lintSource(string $source): ?string

return null;
}

private static function assertSameTokens(Tokens $expectedTokens, Tokens $inputTokens): void
{
self::assertSame($expectedTokens->count(), $inputTokens->count(), 'Both collections must have the same size.');

foreach ($expectedTokens as $index => $expectedToken) {
/** @var Token $inputToken */
$inputToken = $inputTokens[$index];

self::assertTrue(
$expectedToken->equals($inputToken),
\sprintf("Token at index %d must be:\n%s,\ngot:\n%s.", $index, $expectedToken->toJson(), $inputToken->toJson())
);
}
}
}

0 comments on commit 541b9ea

Please sign in to comment.