bootstrapWorker(); $queue = $container->get(Queue::class); echo "āœ… Framework bootstrapped successfully\n"; echo "āœ… Queue service retrieved\n\n"; // Test 1: Basic Queue Information echo "šŸ“‹ Test 1: Basic Queue Information\n"; echo "---------------------------------\n"; $queueClass = get_class($queue); echo "šŸ“Š Queue Implementation: $queueClass\n"; $size = $queue->size(); echo "šŸ“Š Current queue size: $size\n"; $stats = $queue->getStats(); echo "šŸ“Š Queue statistics: " . json_encode($stats, JSON_PRETTY_PRINT) . "\n\n"; // Test 2: Create and Push a Simple Job echo "šŸ“‹ Test 2: Create and Push Simple Job\n"; echo "------------------------------------\n"; $simpleJob = new class () { public function handle(): string { $message = "Simple job executed at " . date('Y-m-d H:i:s'); echo "šŸŽÆ $message\n"; return $message; } public function getType(): string { return 'simple-test-job'; } }; try { $jobPayload = JobPayload::immediate($simpleJob); echo "āœ… JobPayload created successfully\n"; $queue->push($jobPayload); echo "āœ… Job pushed to queue successfully\n"; $newSize = $queue->size(); echo "šŸ“Š Queue size after push: $newSize\n"; } catch (Exception $e) { echo "āŒ Failed to push job: " . $e->getMessage() . "\n"; echo "Stack trace:\n" . $e->getTraceAsString() . "\n"; } echo "\n"; // Test 3: Pop and Execute Job echo "šŸ“‹ Test 3: Pop and Execute Job\n"; echo "-----------------------------\n"; try { $jobPayload = $queue->pop(); if ($jobPayload) { echo "āœ… Job popped from queue\n"; echo "šŸ“Š Job type: " . $jobPayload->job->getType() . "\n"; if (method_exists($jobPayload->job, 'handle')) { echo "āœ… Executing job...\n"; $result = $jobPayload->job->handle(); echo "āœ… Job executed with result: $result\n"; } else { echo "āŒ Job doesn't have handle method\n"; } } else { echo "āŒ No jobs in queue\n"; } $finalSize = $queue->size(); echo "šŸ“Š Queue size after pop: $finalSize\n"; } catch (Exception $e) { echo "āŒ Failed to pop/execute job: " . $e->getMessage() . "\n"; echo "Stack trace:\n" . $e->getTraceAsString() . "\n"; } echo "\n"; // Test 4: Queue Statistics and Methods echo "šŸ“‹ Test 4: Queue Features\n"; echo "-----------------------\n"; $reflection = new ReflectionClass($queue); $methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC); echo "šŸ“‹ Available Queue Methods:\n"; foreach ($methods as $method) { if (! $method->isConstructor() && ! $method->isDestructor()) { $params = array_map(fn ($p) => $p->getType() . ' $' . $p->getName(), $method->getParameters()); echo " • {$method->getName()}(" . implode(', ', $params) . ")\n"; } } echo "\n"; $finalStats = $queue->getStats(); echo "šŸ“Š Final Queue Statistics:\n"; echo json_encode($finalStats, JSON_PRETTY_PRINT) . "\n"; } catch (Exception $e) { echo "āŒ Basic queue test failed: " . $e->getMessage() . "\n"; echo "Stack trace:\n" . $e->getTraceAsString() . "\n"; exit(1); } echo "\nšŸŽÆ Basic queue operations test completed!\n";