#!/usr/bin/env php id->range('1-10'); $table->name->range('test-app{5}, demo-app{5}'); $table->appID->range('1-2'); $table->appName->range('TestApp{5}, DemoApp{5}'); $table->space->range('1-2'); $table->k8name->range('test-k8-{5}, demo-k8-{5}'); $table->status->range('running{8}, stopped{2}'); $table->deleted->range('0{10}'); $table->gen(10); // 3. 用户登录 su('admin'); // 4. 创建测试实例 $instanceTest = new instanceModelTest(); // 5. 创建模拟实例对象 $instance = new stdclass(); $instance->id = 1; $instance->name = 'test-app'; $instance->k8name = 'test-k8-1'; $instance->space = 1; $instance->chart = 'test-chart'; $instance->channel = 'stable'; $instance->version = '1.0.0'; $instance->oldValue = '5Gi'; // 创建模拟的spaceData对象 $instance->spaceData = new stdclass(); $instance->spaceData->k8space = 'test-namespace'; // Mock CNE模块的updateConfig方法 global $tester; $instanceModel = $tester->loadModel('instance'); // 创建一个CNE mock类 class cneMock { public function updateConfig($instance, $settings = null) { // 模拟CNE API失败,这样更符合实际测试环境 return false; } } // 创建一个action mock类 class actionMock { public function create($type, $id, $action, $value, $extra = '') { return 1; // 返回一个模拟的action ID } public function logHistory($actionId, $changes) { return true; // 返回成功 } } // 替换模型中的依赖 $instanceModel->cne = new cneMock(); $instanceModel->action = new actionMock(); // 测试步骤执行 // 步骤1:正常整数大小输入,但CNE失败(10GB) $instance->oldValue = '5Gi'; r($instanceTest->updateVolSizeTest($instance, 10737418240, 'data-storage')) && p('0') && e('调整磁盘空间失败'); // 步骤2:正常字符串大小输入,但CNE失败(5GB) $instance->oldValue = '3Gi'; r($instanceTest->updateVolSizeTest($instance, '5', 'data-storage')) && p('0') && e('调整磁盘空间失败'); // 步骤3:零大小输入(直接返回false) $instance->oldValue = '1Gi'; r($instanceTest->updateVolSizeTest($instance, 0, 'data-storage')) && p('0') && e('调整磁盘空间失败'); // 步骤4:负数大小输入(会被转换为0,直接返回false) $instance->oldValue = '2Gi'; r($instanceTest->updateVolSizeTest($instance, -1073741824, 'data-storage')) && p('0') && e('调整磁盘空间失败'); // 步骤5:空字符串名称输入,但CNE失败(5GB) $instance->oldValue = '4Gi'; r($instanceTest->updateVolSizeTest($instance, 5368709120, '')) && p('0') && e('调整磁盘空间失败');