From 9613064180edddc6633c21412c1d087db8735edf Mon Sep 17 00:00:00 2001 From: "martin.reinfandt" Date: Mon, 11 Aug 2025 11:36:35 +0200 Subject: [PATCH 1/2] fix selecting alias from correct namespace --- src/Writer/SingleNamespaceResolver.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Writer/SingleNamespaceResolver.php b/src/Writer/SingleNamespaceResolver.php index ebf0223..18ff23a 100644 --- a/src/Writer/SingleNamespaceResolver.php +++ b/src/Writer/SingleNamespaceResolver.php @@ -40,19 +40,21 @@ public function resolve(PhpNamespace $namespace, ClassType|InterfaceType|EnumTyp if (str_contains($method->getBody(), $use)) { $classOnlyNamespace->addUse($use); - $method->setBody(str_replace($use, $namespace->simplifyName($use), $method->getBody())); + $method->setBody(str_replace($use, $classOnlyNamespace->simplifyName($use), $method->getBody())); } if ($method->getComment() !== null && str_contains($method->getComment(), $use)) { $classOnlyNamespace->addUse($use); - $method->setComment(str_replace($use, $namespace->simplifyName($use), $method->getComment())); + $method->setComment( + str_replace($use, $classOnlyNamespace->simplifyName($use), $method->getComment()) + ); } if ($returnType !== null && $returnType->allows('array') && $method->getComment() !== null) { if (str_contains($method->getComment(), $use)) { $namespace->addUse($use); $method->setComment( - str_replace($use, $namespace->simplifyName($use), $method->getComment()) + str_replace($use, $classOnlyNamespace->simplifyName($use), $method->getComment()) ); } } @@ -78,7 +80,7 @@ private function resolveUsagesForParameterOrProperty( } $type = $parameterOrProperty->getType(true); - if ($type !== null && $type->allows($use) || $parameterOrProperty->getType() === $use) { + if (($type !== null && $type->allows($use)) || $parameterOrProperty->getType() === $use) { $namespace->addUse($use); } From cff5decbfa8d82a9e87f275d9c9c49b1edc3b8d1 Mon Sep 17 00:00:00 2001 From: "martin.reinfandt" Date: Mon, 11 Aug 2025 11:44:13 +0200 Subject: [PATCH 2/2] fix tests after upgrade to newest generator version --- src/Configuration/Configuration.php | 4 +++- src/Model/ArrayType.php | 4 +++- src/Model/OneOfType.php | 4 +++- src/Model/ParserResult.php | 4 +++- test/Generator/ArrayObjectResolverTest.php | 6 +++--- test/Generator/DictionaryResolverTest.php | 4 ++-- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Configuration/Configuration.php b/src/Configuration/Configuration.php index aa3664a..584a682 100644 --- a/src/Configuration/Configuration.php +++ b/src/Configuration/Configuration.php @@ -9,7 +9,9 @@ readonly class Configuration { public function __construct( - /** @var string[] $paths */ + /** + * @var string[] + */ public array $paths, public string $outputPath, public string $namespace, diff --git a/src/Model/ArrayType.php b/src/Model/ArrayType.php index 585608d..841a289 100644 --- a/src/Model/ArrayType.php +++ b/src/Model/ArrayType.php @@ -12,7 +12,9 @@ public function __construct( public ClassReference|string|OneOfType $type, public bool $nullable, public string $docType, - /** @var string[] $imports */ + /** + * @var string[] + */ public array $imports = [], ) { } diff --git a/src/Model/OneOfType.php b/src/Model/OneOfType.php index c0dc94a..6892799 100644 --- a/src/Model/OneOfType.php +++ b/src/Model/OneOfType.php @@ -7,7 +7,9 @@ readonly class OneOfType { public function __construct( - /** @var array $types */ + /** + * @var array + */ public array $types, ) { } diff --git a/src/Model/ParserResult.php b/src/Model/ParserResult.php index 96033ee..1daaced 100644 --- a/src/Model/ParserResult.php +++ b/src/Model/ParserResult.php @@ -11,7 +11,9 @@ { public function __construct( public OpenApi $openApi, - /** @var File[] $parsedFiles */ + /** + * @var File[] + */ public array $parsedFiles, ) { } diff --git a/test/Generator/ArrayObjectResolverTest.php b/test/Generator/ArrayObjectResolverTest.php index b3c106c..2948b5f 100644 --- a/test/Generator/ArrayObjectResolverTest.php +++ b/test/Generator/ArrayObjectResolverTest.php @@ -9,10 +9,10 @@ use BadMethodCallException; use Countable; use IteratorAggregate; -use Nette\PhpGenerator\ClassLike; use Nette\PhpGenerator\ClassType; use Nette\PhpGenerator\Method; use Nette\PhpGenerator\PhpNamespace; +use Nette\PhpGenerator\Visibility; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Reinfi\OpenApiModels\Generator\ArrayObjectResolver; @@ -104,7 +104,7 @@ public function testItResolvesScalarNotNullableTypeToParameter(): void $property = $class->getProperty('items'); self::assertEquals('array', $property->getType()); self::assertFalse($property->isNullable()); - self::assertEquals(ClassLike::VisibilityPrivate, $property->getVisibility()); + self::assertEquals(Visibility::Private->value, $property->getVisibility()); self::assertStringContainsString('docType', $property->getComment() ?: ''); } @@ -166,7 +166,7 @@ public function testItResolvesReferenceToParameter(): void $property = $class->getProperty('items'); self::assertEquals('array', $property->getType()); self::assertFalse($property->isNullable()); - self::assertEquals(ClassLike::VisibilityPrivate, $property->getVisibility()); + self::assertEquals(Visibility::Private->value, $property->getVisibility()); self::assertStringContainsString('docType', $property->getComment() ?: ''); $imports->copyImports(); diff --git a/test/Generator/DictionaryResolverTest.php b/test/Generator/DictionaryResolverTest.php index f8cddd2..ac7752d 100644 --- a/test/Generator/DictionaryResolverTest.php +++ b/test/Generator/DictionaryResolverTest.php @@ -4,9 +4,9 @@ namespace Reinfi\OpenApiModels\Test\Generator; -use Nette\PhpGenerator\ClassLike; use Nette\PhpGenerator\ClassType; use Nette\PhpGenerator\PhpNamespace; +use Nette\PhpGenerator\Visibility; use PHPUnit\Framework\TestCase; use Reinfi\OpenApiModels\Generator\DictionaryResolver; use Reinfi\OpenApiModels\Model\ArrayType; @@ -53,7 +53,7 @@ public function testItResolvesDictionaryProperty(): void $property = $class->getProperty('dictionaries'); - self::assertEquals(ClassLike::VisibilityPrivate, $property->getVisibility()); + self::assertEquals(Visibility::Private->value, $property->getVisibility()); self::assertEquals('array', $property->getType()); self::assertNotNull($property->getComment()); self::assertStringContainsString('@var Api\TestDictionary[]', $property->getComment());