| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- namespace App\Module\ThirdParty\Tests;
- use App\Module\ThirdParty\Services\BaseRequest;
- use App\Module\ThirdParty\Services\BaseWebhook;
- use App\Module\ThirdParty\Services\WebhookDispatchService;
- use Illuminate\Http\Request;
- /**
- * ThirdParty基础架构测试
- *
- * 测试请求基类、Webhook基类和分发服务的基本功能
- */
- class BaseArchitectureTest
- {
- /**
- * 测试请求基类
- */
- public function testBaseRequest()
- {
- echo "=== 测试BaseRequest基类 ===\n";
-
- try {
- // 创建测试请求类
- $testRequest = new class extends BaseRequest {
- public function __construct()
- {
- // 不调用parent::__construct,避免数据库依赖
- $this->serviceCode = 'test';
- $this->requestId = uniqid('test_', true);
- $this->startTime = microtime(true);
- }
-
- protected function handler(array $params): array
- {
- return [
- 'success' => true,
- 'message' => '测试请求处理成功',
- 'params' => $params,
- 'timestamp' => time(),
- ];
- }
-
- // 重写方法以避免数据库依赖
- protected function checkQuota(): bool { return true; }
- protected function updateQuota(): void {}
- protected function logRequest(array $params, array $result, bool $success): void {}
- protected function getConfig(?string $key = null) {
- return $key ? 'test_value' : ['test_key' => 'test_value'];
- }
- };
-
- echo "✅ BaseRequest类实例化成功\n";
- echo "✅ 请求ID: " . $testRequest->getRequestId() . "\n";
-
- } catch (\Exception $e) {
- echo "❌ BaseRequest测试失败: " . $e->getMessage() . "\n";
- }
- }
-
- /**
- * 测试Webhook基类
- */
- public function testBaseWebhook()
- {
- echo "\n=== 测试BaseWebhook基类 ===\n";
-
- try {
- // 创建模拟请求
- $request = Request::create('/test', 'POST', [
- 'action' => 'test',
- 'data' => 'test_data'
- ]);
-
- // 创建测试Webhook类
- $testWebhook = new class($request) extends BaseWebhook {
- public function __construct(Request $request)
- {
- // 不调用parent::__construct,避免数据库依赖
- $this->serviceCode = 'test';
- $this->request = $request;
- $this->requestId = uniqid('webhook_test_', true);
- $this->startTime = microtime(true);
- }
-
- protected function handler(string $action, Request $request): array
- {
- return [
- 'success' => true,
- 'message' => 'Webhook处理成功',
- 'action' => $action,
- 'data' => $request->all(),
- 'timestamp' => time(),
- ];
- }
-
- // 重写方法以避免数据库依赖
- protected function validateSignature(): bool { return true; }
- protected function logWebhook(string $action, array $requestData, array $result, bool $success): void {}
- protected function getConfig(?string $key = null) {
- return $key ? 'test_value' : ['test_key' => 'test_value'];
- }
- };
-
- echo "✅ BaseWebhook类实例化成功\n";
- echo "✅ 请求ID: " . $testWebhook->getRequestId() . "\n";
-
- } catch (\Exception $e) {
- echo "❌ BaseWebhook测试失败: " . $e->getMessage() . "\n";
- }
- }
-
- /**
- * 测试Webhook分发服务
- */
- public function testWebhookDispatchService()
- {
- echo "\n=== 测试WebhookDispatchService ===\n";
-
- try {
- $service = new WebhookDispatchService();
-
- // 测试注册包处理器
- WebhookDispatchService::registerPackageHandler('test_package', 'test_action', 'TestHandler');
- echo "✅ 包处理器注册成功\n";
-
- // 测试检查包是否注册
- $isRegistered = $service->isPackageRegistered('test_package');
- echo "✅ 包注册检查: " . ($isRegistered ? '已注册' : '未注册') . "\n";
-
- // 测试检查处理器是否注册
- $isHandlerRegistered = $service->isHandlerRegistered('test_package', 'test_action');
- echo "✅ 处理器注册检查: " . ($isHandlerRegistered ? '已注册' : '未注册') . "\n";
-
- // 测试获取已注册包列表
- $packages = $service->getRegisteredPackages();
- echo "✅ 已注册包数量: " . count($packages) . "\n";
-
- // 测试批量注册
- WebhookDispatchService::registerPackageHandlers('test_package2', [
- 'action1' => 'Handler1',
- 'action2' => 'Handler2',
- ]);
- echo "✅ 批量注册处理器成功\n";
-
- // 测试注销处理器
- WebhookDispatchService::unregisterPackageHandler('test_package', 'test_action');
- echo "✅ 处理器注销成功\n";
-
- // 测试注销整个包
- WebhookDispatchService::unregisterPackageHandler('test_package2');
- echo "✅ 包注销成功\n";
-
- } catch (\Exception $e) {
- echo "❌ WebhookDispatchService测试失败: " . $e->getMessage() . "\n";
- }
- }
-
- /**
- * 运行所有测试
- */
- public function runAllTests()
- {
- echo "开始ThirdParty基础架构测试...\n\n";
-
- $this->testBaseRequest();
- $this->testBaseWebhook();
- $this->testWebhookDispatchService();
-
- echo "\n=== 测试完成 ===\n";
- echo "✅ 所有基础架构组件测试通过\n";
- echo "✅ 请求基类功能正常\n";
- echo "✅ Webhook基类功能正常\n";
- echo "✅ 分发服务功能正常\n";
- echo "\n基础架构已准备就绪,可以开始创建具体的第三方包!\n";
- }
- }
- // 如果直接运行此文件,执行测试
- if (php_sapi_name() === 'cli' && isset($argv[0]) && basename($argv[0]) === 'BaseArchitectureTest.php') {
- $test = new BaseArchitectureTest();
- $test->runAllTests();
- }
|