Files
michaelschiemer/tests/debug/test-dependency-graph-node.php
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

64 lines
2.5 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use App\Framework\Core\ValueObjects\ClassName;
use App\Framework\Core\ValueObjects\MethodName;
use App\Framework\DI\ValueObjects\DependencyGraphNode;
echo "=== Testing DependencyGraphNode Value Object ===\n\n";
try {
// Test basic node creation
$node = new DependencyGraphNode(
returnType: 'App\\Service\\DatabaseService',
className: ClassName::create('App\\Config\\DatabaseInitializer'),
methodName: MethodName::create('createDatabaseService'),
dependencies: ['App\\Database\\Connection', 'App\\Logging\\Logger']
);
echo "✅ Node created successfully:\n";
echo " " . $node->toString() . "\n\n";
// Test methods
echo "=== Testing Node Methods ===\n";
echo "Return Type: " . $node->returnType . "\n";
echo "Class Name: " . $node->getClassName() . "\n";
echo "Method Name: " . $node->getMethodName() . "\n";
echo "Has Dependencies: " . ($node->hasDependencies() ? 'Yes' : 'No') . "\n";
echo "Depends on Logger: " . ($node->dependsOn('App\\Logging\\Logger') ? 'Yes' : 'No') . "\n";
echo "Depends on Redis: " . ($node->dependsOn('App\\Cache\\Redis') ? 'Yes' : 'No') . "\n\n";
// Test array conversion
echo "=== Testing Array Conversion ===\n";
$arrayData = $node->toArray();
echo "Array format:\n";
print_r($arrayData);
// Test from array creation
echo "\n=== Testing From Array Creation ===\n";
$nodeFromArray = DependencyGraphNode::fromArray('App\\Service\\DatabaseService', $arrayData);
echo "Recreated from array: " . $nodeFromArray->toString() . "\n";
echo "Equal to original: " . ($node->toString() === $nodeFromArray->toString() ? 'Yes' : 'No') . "\n\n";
// Test with additional dependencies
echo "=== Testing Additional Dependencies ===\n";
$nodeWithExtraDeps = $node->withDependencies(['App\\Cache\\Redis', 'App\\Events\\EventDispatcher']);
echo "Original dependencies: " . count($node->dependencies) . "\n";
echo "New dependencies: " . count($nodeWithExtraDeps->dependencies) . "\n";
echo "New node toString: " . $nodeWithExtraDeps->toString() . "\n\n";
// Test debug info
echo "=== Testing Debug Info ===\n";
$debugInfo = $node->getDebugInfo();
print_r($debugInfo);
echo "\n✅ All DependencyGraphNode tests passed!\n";
} catch (Exception $e) {
echo "❌ Error: " . $e->getMessage() . "\n";
echo "Stack trace:\n" . $e->getTraceAsString() . "\n";
}