+ [misc] Add unit tests for cneModel::getVolumesMetrics() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-11-25 08:37:55 +08:00
co-authored by Claude
parent 969d2b6307
commit e279ca97d7
2 changed files with 85 additions and 0 deletions
+14
View File
@@ -144,4 +144,18 @@ class cneModelTest extends baseTest
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test getVolumesMetrics method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function getVolumesMetricsTest(object $instance)
{
$result = $this->invokeArgs('getVolumesMetrics', [$instance]);
if(dao::isError()) return dao::getError();
return $result;
}
}
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env php
<?php
/**
title=测试 cneModel::getVolumesMetrics();
timeout=0
cid=0
- 步骤1:使用有效的实例对象获取卷度量
- 属性limit @0
- 属性usage @0
- 属性rate @0.01
- 步骤2:使用空spaceData的实例对象
- 属性limit @0
- 属性usage @0
- 属性rate @0.01
- 步骤3:使用空k8name的实例对象
- 属性limit @0
- 属性usage @0
- 属性rate @0.01
- 步骤4:验证返回对象包含必需属性 @1
- 步骤5:验证rate计算结果合理性 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
su('admin');
$cneTest = new cneModelTest();
// 准备测试用的实例对象
$validInstance = new stdClass();
$validInstance->spaceData = new stdClass();
$validInstance->spaceData->k8space = 'default';
$validInstance->k8name = 'test-app';
// 步骤1:使用有效的实例对象获取卷度量
$result1 = $cneTest->getVolumesMetricsTest($validInstance);
// 步骤2:使用空spaceData的实例对象
$instance2 = new stdClass();
$instance2->spaceData = new stdClass();
$instance2->spaceData->k8space = '';
$instance2->k8name = 'test-app';
$result2 = $cneTest->getVolumesMetricsTest($instance2);
// 步骤3:使用空k8name的实例对象
$instance3 = new stdClass();
$instance3->spaceData = new stdClass();
$instance3->spaceData->k8space = 'default';
$instance3->k8name = '';
$result3 = $cneTest->getVolumesMetricsTest($instance3);
// 步骤4:验证返回对象包含必需属性
$result4 = $cneTest->getVolumesMetricsTest($validInstance);
$hasLimit = isset($result4->limit);
$hasUsage = isset($result4->usage);
$hasRate = isset($result4->rate);
// 步骤5:验证rate计算结果合理性
$result5 = $cneTest->getVolumesMetricsTest($validInstance);
$rateIsNumeric = is_numeric($result5->rate);
r($result1) && p('limit,usage,rate') && e('0,0,0.01'); // 步骤1:使用有效的实例对象获取卷度量
r($result2) && p('limit,usage,rate') && e('0,0,0.01'); // 步骤2:使用空spaceData的实例对象
r($result3) && p('limit,usage,rate') && e('0,0,0.01'); // 步骤3:使用空k8name的实例对象
r($hasLimit && $hasUsage && $hasRate) && p() && e('1'); // 步骤4:验证返回对象包含必需属性
r($rateIsNumeric) && p() && e('1'); // 步骤5:验证rate计算结果合理性