znt/module/instance/test/model/updatevolsize.php

102 lines
3.4 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 instanceModel::updateVolSize();
timeout=0
cid=16825
- 执行instanceTest模块的updateVolSizeTest方法参数是$instance, 10737418240, 'data-storage' @调整磁盘空间失败
- 执行instanceTest模块的updateVolSizeTest方法参数是$instance, '5', 'data-storage' @调整磁盘空间失败
- 执行instanceTest模块的updateVolSizeTest方法参数是$instance, 0, 'data-storage' @调整磁盘空间失败
- 执行instanceTest模块的updateVolSizeTest方法参数是$instance, -1073741824, 'data-storage' @调整磁盘空间失败
- 执行instanceTest模块的updateVolSizeTest方法参数是$instance, 5368709120, '' @调整磁盘空间失败
*/
// 1. 导入依赖
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. zendata数据准备
$table = zenData('instance');
$table->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('调整磁盘空间失败');