mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-17 17:47:13 +00:00
Fix Relative class names are not converted to fully-qualified class names (FQCNs) (#1005)
* Fix https://github.com/barryvdh/laravel-ide-helper/issues/627 * Fix codestyle * Init * composer fix-style * Actualize * Fix * normalize composer.json * Fix * composer fix-style * Replace NamespaceUses with UsesResolver * Add UsesResolver tests * Add MethodTest::testClassAliases * Fix code style * Get rid of laravel support helpers * Make class UsesResolver stateless, update tests for it * composer fix-style Co-authored-by: Andrii Savluk <[email protected]> Co-authored-by: laravel-ide-helper <[email protected]> Co-authored-by: SavKS <[email protected]> Co-authored-by: Taras Fomin <[email protected]>
This commit is contained in:
co-authored by
Andrii Savluk
laravel-ide-helper
SavKS
Taras Fomin
parent
6c4dcd9049
commit
c5e18beff1
@@ -97,6 +97,37 @@ DOC;
|
||||
$this->assertSame('$chars = \'$\\\'\\\\\'', $method->getParamsWithDefault(true));
|
||||
$this->assertSame(['$chars = \'$\\\'\\\\\''], $method->getParamsWithDefault(false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the output of a class when using class aliases for it
|
||||
*/
|
||||
public function testClassAliases()
|
||||
{
|
||||
$reflectionClass = new \ReflectionClass(ExampleClass::class);
|
||||
$reflectionMethod = $reflectionClass->getMethod('getApplication');
|
||||
|
||||
$method = new Method($reflectionMethod, 'Example', $reflectionClass, null, [], [
|
||||
'Application' => '\\Illuminate\\Foundation\\Application',
|
||||
]);
|
||||
|
||||
$output = <<<'DOC'
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @return \Illuminate\Foundation\Application
|
||||
* @static
|
||||
*/
|
||||
DOC;
|
||||
|
||||
$this->assertSame($output, $method->getDocComment(''));
|
||||
$this->assertSame('getApplication', $method->getName());
|
||||
$this->assertSame('\\' . ExampleClass::class, $method->getDeclaringClass());
|
||||
$this->assertSame('', $method->getParams(true));
|
||||
$this->assertSame([], $method->getParams(false));
|
||||
$this->assertSame('', $method->getParamsWithDefault(true));
|
||||
$this->assertSame([], $method->getParamsWithDefault(false));
|
||||
$this->assertTrue($method->shouldReturn());
|
||||
}
|
||||
}
|
||||
|
||||
class ExampleClass
|
||||
@@ -115,4 +146,12 @@ class ExampleClass
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Application
|
||||
*/
|
||||
public function getApplication()
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Barryvdh\LaravelIdeHelper\Tests;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\UsesResolver;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class UsesResolverTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Test that we can correctly load uses from supplied code
|
||||
*/
|
||||
public function testLoadFromCode()
|
||||
{
|
||||
$usesResolver = new UsesResolver();
|
||||
|
||||
$code = <<<'DOC'
|
||||
<?php
|
||||
namespace Barryvdh\LaravelIdeHelper\Tests;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\UsesResolver as MyUsesResolver;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class UsesResolverTest extends TestCase
|
||||
{
|
||||
//
|
||||
}
|
||||
DOC;
|
||||
|
||||
$this->assertEquals(
|
||||
$usesResolver->loadFromCode('Barryvdh\\LaravelIdeHelper\\Tests\\UsesResolverTest', $code),
|
||||
[
|
||||
'MyUsesResolver' => '\\Barryvdh\\LaravelIdeHelper\\UsesResolver',
|
||||
'TestCase' => '\\PHPUnit\Framework\TestCase',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that we can correctly load uses from a class
|
||||
*/
|
||||
public function testLoadFromClass()
|
||||
{
|
||||
$usesResolver = new UsesResolver();
|
||||
|
||||
$this->assertEquals(
|
||||
$usesResolver->loadFromClass(self::class),
|
||||
[
|
||||
'UsesResolver' => '\\Barryvdh\\LaravelIdeHelper\\UsesResolver',
|
||||
'TestCase' => '\\PHPUnit\Framework\TestCase',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user