Skip to content
This repository was archived by the owner on Jul 12, 2020. It is now read-only.

Commit b2ac6e7

Browse files
committed
Savepoint with failing test for changing the scanning of PhpNames by adding class and namespace declarations to result.
1 parent dfe5485 commit b2ac6e7

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

src/main/QafooLabs/Refactoring/Adapters/PHPParser/Visitor/PhpNameCollector.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ public function enterNode(PHPParser_Node $node)
6565
}
6666

6767
if ($node instanceof PHPParser_Node_Stmt_Class) {
68+
$className = $node->name;
69+
70+
$this->nameDeclarations[] = array(
71+
'alias' => $className,
72+
'fqcn' => $this->fullyQualifiedNameFor($className),
73+
'line' => $node->getLine()
74+
);
75+
6876
if ($node->extends) {
6977
$usedAlias = implode('\\', $node->extends->parts);
7078

@@ -89,6 +97,12 @@ public function enterNode(PHPParser_Node $node)
8997
if ($node instanceof PHPParser_Node_Stmt_Namespace) {
9098
$this->currentNamespace = implode('\\', $node->name->parts);
9199
$this->useStatements = array();
100+
101+
$this->nameDeclarations[] = array(
102+
'alias' => $this->currentNamespace,
103+
'fqcn' => $this->currentNamespace,
104+
'line' => $node->name->getLine()
105+
);
92106
}
93107
}
94108

src/main/QafooLabs/Refactoring/Application/FixClassNames.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ class FixClassNames
2323
{
2424
private $codeAnalysis;
2525
private $editor;
26-
private $occurancescanner;
26+
private $nameScanner;
2727

28-
public function __construct($codeAnalysis, $editor, $occurancescanner)
28+
public function __construct($codeAnalysis, $editor, $nameScanner)
2929
{
3030
$this->codeAnalysis = $codeAnalysis;
3131
$this->editor = $editor;
32-
$this->nameScanner = $occurancescanner;
32+
$this->nameScanner = $nameScanner;
3333
}
3434

3535
public function refactor(Directory $directory)
@@ -47,26 +47,24 @@ public function refactor(Directory $directory)
4747
continue;
4848
}
4949

50-
$rename = false;
5150
$class = $classes[0];
5251
$currentClassName = $class->declarationName();
5352
$expectedClassName = $phpFile->extractPsr0ClassName();
5453

5554
$buffer = $this->editor->openBuffer($phpFile);
5655

57-
// TODO: Introduce Set datastructure with addIf($data, $condition)
5856
if ($expectedClassName->shortName() !== $currentClassName->shortName()) {
5957
$line = $class->declarationLine();
6058

61-
$buffer->replaceString($line, $currentClassName->shortName(), $expectedClassName->shortName());
59+
#$buffer->replaceString($line, $currentClassName->shortName(), $expectedClassName->shortName());
6260

6361
$renames->add(new PhpNameChange($currentClassName, $expectedClassName));
6462
}
6563

6664
if ($expectedClassName->namespaceName() !== $currentClassName->namespaceName()) {
6765
$namespaceLine = $class->namespaceDeclarationLine();
6866

69-
$buffer->replaceString($namespaceLine, $currentClassName->namespaceName(), $expectedClassName->namespaceName());
67+
#$buffer->replaceString($namespaceLine, $currentClassName->namespaceName(), $expectedClassName->namespaceName());
7068

7169
$renames->add(new PhpNameChange($currentClassName, $expectedClassName));
7270
}

src/test/QafooLabs/Refactoring/Adapters/PHPParser/ParserPhpNameScannerTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@ public function testFindNames()
1616

1717
$this->assertEquals(
1818
array(
19+
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Adapters\PHPParser', 'QafooLabs\Refactoring\Adapters\PHPParser'), $file, 3),
1920
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Domain\Model\File', 'QafooLabs\Refactoring\Domain\Model\File'), $file, 5),
2021
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Domain\Model\PhpName', 'QafooLabs\Refactoring\Domain\Model\PhpName'), $file, 6),
2122
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Domain\Model\PhpNameOccurance', 'QafooLabs\Refactoring\Domain\Model\PhpNameOccurance'), $file, 7),
23+
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Adapters\PHPParser\ParserPhpNameScannerTest', 'ParserPhpNameScannerTest'), $file, 9),
2224
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Adapters\PHPParser\PHPUnit_Framework_TestCase', 'PHPUnit_Framework_TestCase'), $file, 9),
2325
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Domain\Model\File', 'File'), $file, 13),
2426
new PhpNameOccurance(new PhpName('QafooLabs\Refactoring\Adapters\PHPParser\ParserPhpNameScanner', 'ParserPhpNameScanner'), $file, 14),
2527
),
26-
array_slice($names, 0, 6)
28+
array_slice($names, 0, 8)
2729
);
2830
}
2931
}

0 commit comments

Comments
 (0)