improve tests

This commit is contained in:
TomasVotruba 2017-08-06 23:37:10 +02:00
parent d818014477
commit 61c7ef9de0
6 changed files with 37 additions and 26 deletions

View File

@ -18,7 +18,7 @@ final class FileProcessor
/** /**
* @var FormatPerservingPrinter * @var FormatPerservingPrinter
*/ */
private $codeStyledPrinter; private $formatPerservingPrinter;
/** /**
* @var NodeTraverser * @var NodeTraverser
@ -37,7 +37,7 @@ final class FileProcessor
NodeTraverser $nodeTraverser NodeTraverser $nodeTraverser
) { ) {
$this->parser = $parser; $this->parser = $parser;
$this->codeStyledPrinter = $codeStyledPrinter; $this->formatPerservingPrinter = $codeStyledPrinter;
$this->nodeTraverser = $nodeTraverser; $this->nodeTraverser = $nodeTraverser;
$this->lexer = $lexer; $this->lexer = $lexer;
} }
@ -66,7 +66,7 @@ final class FileProcessor
$newStmts = $this->nodeTraverser->traverse($oldStmts); $newStmts = $this->nodeTraverser->traverse($oldStmts);
$this->codeStyledPrinter->printToFile($file, $newStmts, $oldStmts, $oldTokens); $this->formatPerservingPrinter->printToFile($file, $newStmts, $oldStmts, $oldTokens);
} }
/** /**

View File

@ -38,17 +38,24 @@ final class StatementGlue
$classNode->stmts[] = $node; $classNode->stmts[] = $node;
} }
public function addAsFirstTrait(Class_ $classNode, TraitUse $traitUse): void public function addAsFirstTrait(Class_ $classNode, Node $node): void
{ {
foreach ($classNode->stmts as $key => $classElementNode) { $this->addStatementToClassBeforeTypes($classNode, $node, TraitUse::class, Property::class);
if ($classElementNode instanceof TraitUse) { }
$this->insertBefore($classNode, $traitUse, $key);
return; private function addStatementToClassBeforeTypes(Class_ $classNode, Node $node, string ...$types): void
{
foreach ($types as $type) {
foreach ($classNode->stmts as $key => $classElementNode) {
if (is_a($classElementNode, $type, true)) {
$this->insertBefore($classNode, $node, $key);
return;
}
} }
} }
$classNode->stmts[] = $traitUse; $classNode->stmts[] = $node;
} }
/** /**

View File

@ -15,19 +15,6 @@ abstract class AbstraceReplaceDeprecatedConstantNodeVisitor extends NodeVisitorA
abstract public function getNewConstantName(): string; abstract public function getNewConstantName(): string;
/**
* Return value semantics:
* * null
* => $node stays as-is
* * NodeTraverser::DONT_TRAVERSE_CHILDREN
* => Children of $node are not traversed. $node stays as-is
* * NodeTraverser::STOP_TRAVERSAL
* => Traversal is aborted. $node stays as-is
* * otherwise
* => $node is set to the return value.
*
* @return null|int|Node
*/
public function enterNode(Node $node): ?int public function enterNode(Node $node): ?int
{ {
if ($this->isCandidate($node)) { if ($this->isCandidate($node)) {

View File

@ -8,13 +8,17 @@ final class Test extends AbstractReconstructorTestCase
{ {
public function test(): void public function test(): void
{ {
// $this->doTestFileMatchesExpectedContent( $this->doTestFileMatchesExpectedContent(
// __DIR__ . '/wrong/wrong.php.inc', __DIR__ . '/wrong/wrong.php.inc',
// __DIR__ . '/correct/correct.php.inc' __DIR__ . '/correct/correct.php.inc'
// ); );
$this->doTestFileMatchesExpectedContent( $this->doTestFileMatchesExpectedContent(
__DIR__ . '/wrong/wrong2.php.inc', __DIR__ . '/wrong/wrong2.php.inc',
__DIR__ . '/correct/correct2.php.inc' __DIR__ . '/correct/correct2.php.inc'
); );
$this->doTestFileMatchesExpectedContent(
__DIR__ . '/wrong/wrong3.php.inc',
__DIR__ . '/correct/correct3.php.inc'
);
} }
} }

View File

@ -0,0 +1,7 @@
<?php declare (strict_types=1);
class ClassWithExternalConstant
{
use \Nette\SmartObject;
public $property;
}

View File

@ -0,0 +1,6 @@
<?php declare (strict_types=1);
class ClassWithExternalConstant extends Nette\Object
{
public $property;
}