forked from Diagonal-HQ/ts-enum-generator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdebug_command.php
More file actions
73 lines (61 loc) · 2.45 KB
/
debug_command.php
File metadata and controls
73 lines (61 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
require_once 'vendor/autoload.php';
use Diagonal\TsEnumGenerator\Tests\Fixtures\Enums\UserRole;
use Diagonal\TsEnumGenerator\Tests\Fixtures\Enums\Status;
use ReflectionClass;
use ReflectionEnum;
// Test if we can load the enum classes
echo "Testing enum loading...\n";
try {
$userRoleReflection = new ReflectionClass(UserRole::class);
echo "✅ UserRole class loaded successfully\n";
echo "Is enum: " . ($userRoleReflection->isEnum() ? 'Yes' : 'No') . "\n";
if ($userRoleReflection->isEnum()) {
$enumReflection = new ReflectionEnum(UserRole::class);
$cases = $enumReflection->getCases();
echo "Cases found: " . count($cases) . "\n";
foreach ($cases as $case) {
echo "- {$case->name}" . (property_exists($case, 'value') ? " = {$case->value}" : "") . "\n";
}
}
} catch (Exception $e) {
echo "❌ Error loading UserRole: " . $e->getMessage() . "\n";
}
try {
$statusReflection = new ReflectionClass(Status::class);
echo "✅ Status class loaded successfully\n";
echo "Is enum: " . ($statusReflection->isEnum() ? 'Yes' : 'No') . "\n";
if ($statusReflection->isEnum()) {
$enumReflection = new ReflectionEnum(Status::class);
$cases = $enumReflection->getCases();
echo "Cases found: " . count($cases) . "\n";
foreach ($cases as $case) {
echo "- {$case->name}" . (property_exists($case, 'value') ? " = {$case->value}" : "") . "\n";
}
}
} catch (Exception $e) {
echo "❌ Error loading Status: " . $e->getMessage() . "\n";
}
// Test file discovery
echo "\nTesting file discovery...\n";
use Symfony\Component\Finder\Finder;
$finder = new Finder();
$files = $finder->files()->in('tests/fixtures/enums')->name('*.php');
foreach ($files as $file) {
echo "Found file: " . $file->getPathname() . "\n";
$contents = file_get_contents($file->getPathname());
// Test the regex from the command
if (preg_match('/enum\s+\w+/', $contents)) {
echo "✅ File contains enum definition\n";
} else {
echo "❌ File does not match enum regex\n";
}
// Test class name extraction
if (preg_match('/namespace\s+(.+?);/', $contents, $namespaceMatch) &&
preg_match('/enum\s+(\w+)/', $contents, $enumMatch)) {
$className = $namespaceMatch[1] . '\\' . $enumMatch[1];
echo "Extracted class name: {$className}\n";
} else {
echo "❌ Could not extract class name\n";
}
}