Files
michaelschiemer/tests/debug/test-dependency-graph-api.php
Michael Schiemer 36ef2a1e2c
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
fix: Gitea Traefik routing and connection pool optimization
- Remove middleware reference from Gitea Traefik labels (caused routing issues)
- Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s)
- Add explicit service reference in Traefik labels
- Fix intermittent 504 timeouts by improving PostgreSQL connection handling

Fixes Gitea unreachability via git.michaelschiemer.de
2025-11-09 14:46:15 +01:00

67 lines
2.6 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use App\Framework\DI\InitializerDependencyGraph;
use App\Framework\ReflectionLegacy\CachedReflectionProvider;
echo "=== Testing InitializerDependencyGraph API ===\n\n";
try {
$reflectionProvider = new CachedReflectionProvider();
$graph = new InitializerDependencyGraph($reflectionProvider);
// Add some test initializers
$graph->addInitializer('App\\Cache\\Cache', 'App\\Config\\CacheInitializer', 'createCache');
$graph->addInitializer('App\\Database\\Connection', 'App\\Config\\DatabaseInitializer', 'createConnection');
$graph->addInitializer('App\\Logging\\Logger', 'App\\Config\\LoggerInitializer', 'createLogger');
echo "=== Testing New API Methods ===\n";
// Test hasNode
echo "Has Cache node: " . ($graph->hasNode('App\\Cache\\Cache') ? 'Yes' : 'No') . "\n";
echo "Has Redis node: " . ($graph->hasNode('App\\Cache\\Redis') ? 'Yes' : 'No') . "\n\n";
// Test getNode
$cacheNode = $graph->getNode('App\\Cache\\Cache');
if ($cacheNode) {
echo "✅ Cache node found:\n";
echo " " . $cacheNode->toString() . "\n";
echo " Class: " . $cacheNode->getClassName() . "\n";
echo " Method: " . $cacheNode->getMethodName() . "\n";
echo " Dependencies: " . count($cacheNode->dependencies) . "\n\n";
}
$missingNode = $graph->getNode('App\\NonExistent\\Service');
echo "Missing node result: " . ($missingNode === null ? 'null (correct)' : 'found (unexpected)') . "\n\n";
// Test getNodes (new API)
echo "=== Testing Node Enumeration ===\n";
$nodes = $graph->getNodes();
echo "Total nodes: " . count($nodes) . "\n";
foreach ($nodes as $returnType => $node) {
echo "- $returnType: {$node->getClassName()}::{$node->getMethodName()}\n";
}
echo "\n=== Testing Execution Order ===\n";
$executionOrder = $graph->getExecutionOrder();
echo "Execution order: " . implode(' → ', $executionOrder) . "\n\n";
// Test backward compatibility
echo "=== Testing Backward Compatibility ===\n";
$nodesArray = $graph->getNodesAsArray();
echo "Nodes as array format (backward compatibility):\n";
foreach ($nodesArray as $returnType => $nodeData) {
echo "- $returnType: {$nodeData['class']}::{$nodeData['method']} (deps: " . count($nodeData['dependencies']) . ")\n";
}
echo "\n✅ All InitializerDependencyGraph API tests passed!\n";
} catch (Exception $e) {
echo "❌ Error: " . $e->getMessage() . "\n";
echo "Stack trace:\n" . $e->getTraceAsString() . "\n";
}