From e279ca97d7a88f0f129f5405d515366bec9f2c7c Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 24 Nov 2025 17:35:59 +0800 Subject: [PATCH] + [misc] Add unit tests for cneModel::getVolumesMetrics() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/cne/test/lib/model.class.php | 14 ++++ module/cne/test/model/getvolumesmetrics.php | 71 +++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100755 module/cne/test/model/getvolumesmetrics.php diff --git a/module/cne/test/lib/model.class.php b/module/cne/test/lib/model.class.php index eba6b4c455..5fa05b70cb 100644 --- a/module/cne/test/lib/model.class.php +++ b/module/cne/test/lib/model.class.php @@ -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; + } } diff --git a/module/cne/test/model/getvolumesmetrics.php b/module/cne/test/model/getvolumesmetrics.php new file mode 100755 index 0000000000..b59a742624 --- /dev/null +++ b/module/cne/test/model/getvolumesmetrics.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php +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计算结果合理性 \ No newline at end of file