Skip to content

Commit 5489869

Browse files
committed
Fix render enum when wrapped in file object
1 parent 3e49c1d commit 5489869

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

src/Renderer/Php7Renderer.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ public function renderFile(PhpFile $file): array
9393
foreach ($classes as $identifier) {
9494
/** @var PhpTrait|PhpClass|PhpInterface $class */
9595
$class = $classes[$identifier];
96-
if ($class instanceof PhpInterface) {
96+
if ($class instanceof PhpEnum) {
97+
$source = $this->renderEnum($class);
98+
}
99+
elseif ($class instanceof PhpInterface) {
97100
$source = $this->renderInterface($class);
98101
}
99102
elseif ($class instanceof PhpClass) {

tests/Renderer/PhpEnumTest.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
use PHPUnit\Framework\Attributes\DataProvider;
66
use PHPUnit\Framework\TestCase;
77
use Stefna\PhpCodeBuilder\PhpEnum;
8+
use Stefna\PhpCodeBuilder\PhpFile;
89
use Stefna\PhpCodeBuilder\Renderer\Php74Renderer;
9-
use Stefna\PhpCodeBuilder\Renderer\Php7Renderer;
1010
use Stefna\PhpCodeBuilder\Renderer\Php81Renderer;
1111
use Stefna\PhpCodeBuilder\ValueObject\EnumBackedCase;
1212
use Stefna\PhpCodeBuilder\ValueObject\EnumCase;
@@ -61,4 +61,19 @@ public static function enumTypes(): array
6161
],
6262
];
6363
}
64+
65+
public function testRenderEnumInFile(): void
66+
{
67+
$renderer = new Php81Renderer();
68+
$enum = new PhpEnum(
69+
'Test',
70+
cases: [
71+
new EnumCase('Up'),
72+
new EnumCase('Down'),
73+
],
74+
);
75+
$file = PhpFile::createFromClass($enum);
76+
77+
$this->assertSourceResult($renderer->render($file), 'PhpEnumTest.' . __FUNCTION__);
78+
}
6479
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php declare(strict_types=1);
2+
3+
enum Test
4+
{
5+
case Up;
6+
case Down;
7+
}

0 commit comments

Comments
 (0)