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"; }