resolveParameters($method, ['production'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; // Test 2: One flag provided echo "Test 2: One flag --verbose\n"; echo "Command: deploy production --verbose\n"; $method = new ReflectionMethod(FlagTestCommand::class, 'withFlags'); $params = $resolver->resolveParameters($method, ['production', '--verbose'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; // Test 3: Multiple flags echo "Test 3: Multiple flags --verbose --force\n"; echo "Command: deploy production --verbose --force\n"; $method = new ReflectionMethod(FlagTestCommand::class, 'withFlags'); $params = $resolver->resolveParameters($method, ['production', '--verbose', '--force'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; // Test 4: All flags echo "Test 4: All flags --verbose --force --dry-run\n"; echo "Command: deploy production --verbose --force --dry-run\n"; $method = new ReflectionMethod(FlagTestCommand::class, 'withFlags'); $params = $resolver->resolveParameters($method, ['production', '--verbose', '--force', '--dry-run'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; // Test 5: Mixed params + flags (no flags) echo "Test 5: Mixed parameters without flags\n"; echo "Command: user Alice 25\n"; $method = new ReflectionMethod(FlagTestCommand::class, 'mixedWithFlags'); $params = $resolver->resolveParameters($method, ['Alice', '25'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; // Test 6: Mixed params + flags (with flags) echo "Test 6: Mixed parameters with flags\n"; echo "Command: user Alice 25 --verified --active\n"; $method = new ReflectionMethod(FlagTestCommand::class, 'mixedWithFlags'); $params = $resolver->resolveParameters($method, ['Alice', '25', '--verified', '--active'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; // Test 7: Mixed params + one flag echo "Test 7: Mixed parameters with one flag\n"; echo "Command: user Bob 30 --verified\n"; $method = new ReflectionMethod(FlagTestCommand::class, 'mixedWithFlags'); $params = $resolver->resolveParameters($method, ['Bob', '30', '--verified'], null, $output); echo "Resolved params count: " . count($params) . "\n"; $result = $method->invokeArgs($command, $params); echo "Result: {$result}\n\n"; echo "✅ All tests completed!\n"; echo "\nExpected behavior:\n"; echo "- Flags without '--' prefix: null\n"; echo "- Flags with '--' prefix: true\n"; echo "- No boolean false (only null or true)\n";