From 64245756153ecb47f060cdae505f2d4e7adac041 Mon Sep 17 00:00:00 2001 From: zhouxin Date: Fri, 19 May 2023 08:23:43 +0000 Subject: [PATCH] * Add unit test for product-concatProductLine. --- .../product/test/model/concatproductline.php | 41 +++++++++++++++++++ module/product/test/model/updateprojects.php | 1 + .../model/yaml/concatproductline/line.yaml | 13 ++++++ .../model/yaml/concatproductline/product.yaml | 15 +++++++ module/product/test/product.class.php | 14 +++++++ 5 files changed, 84 insertions(+) create mode 100755 module/product/test/model/concatproductline.php create mode 100644 module/product/test/model/yaml/concatproductline/line.yaml create mode 100644 module/product/test/model/yaml/concatproductline/product.yaml diff --git a/module/product/test/model/concatproductline.php b/module/product/test/model/concatproductline.php new file mode 100755 index 0000000000..bcdf1b86a7 --- /dev/null +++ b/module/product/test/model/concatproductline.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +config('line')->gen(5); +zdTable('product')->config('product')->gen(30); + +/** + +title=productModel->concatProductLine(); +cid=1 +pid=1 + +*/ + +$product = new productTest('admin'); + +$lineList = array(1, 2, 3, 4, 5); +$line1Products = range(1, 5); +$line2Products = range(6, 10); +$line3Products = range(11, 15); +$line4Products = range(16, 20); +$line5Products = range(21, 25); +$noLineProducts = range(26,30); + +$testSuit1 = array_merge($line1Products, $line2Products, $line3Products); +$testSuit2 = array_merge($line3Products, $line4Products, $line5Products); +$testSuit3 = array_merge($line3Products, $line4Products, $noLineProducts); + +r($product->concatProductLineTest($testSuit1)) && p('0:name;1:name;2:name') && e('产品线1/产品1,产品线1/产品2,产品线1/产品3'); // 测试第一组产品列表的0,1,2条数据 +r($product->concatProductLineTest($testSuit1)) && p('5:name;6:name;7:name') && e('产品线2/产品6,产品线2/产品7,产品线2/产品8'); // 测试第一组产品列表的5,6,7条数据 +r($product->concatProductLineTest($testSuit1)) && p('10:name;11:name;12:name') && e('产品线3/产品11,产品线3/产品12,产品线3/产品13'); // 测试第一组产品列表的10,11,12条数据 + +r($product->concatProductLineTest($testSuit2)) && p('0:name;1:name;2:name') && e('产品线3/产品11,产品线3/产品12,产品线3/产品13'); // 测试第二组产品列表的0,1,2条数据 +r($product->concatProductLineTest($testSuit2)) && p('5:name;6:name;7:name') && e('产品线4/产品16,产品线4/产品17,产品线4/产品18'); // 测试第二组产品列表的5,6,7条数据 +r($product->concatProductLineTest($testSuit2)) && p('10:name;11:name;12:name') && e('产品线5/产品21,产品线5/产品22,产品线5/产品23'); // 测试第二组产品列表的10,11,12条数据 + +r($product->concatProductLineTest($testSuit3)) && p('0:name;1:name;2:name') && e('产品线3/产品11,产品线3/产品12,产品线3/产品13'); // 测试第三组产品列表的0,1,2条数据 +r($product->concatProductLineTest($testSuit3)) && p('5:name;6:name;7:name') && e('产品线4/产品16,产品线4/产品17,产品线4/产品18'); // 测试第三组产品列表的5,6,7条数据 +r($product->concatProductLineTest($testSuit3)) && p('10:name;11:name;12:name') && e('产品26,产品27,产品28'); // 测试第三组产品列表的10,11,12条数据 diff --git a/module/product/test/model/updateprojects.php b/module/product/test/model/updateprojects.php index f7587cc9c1..663eb70281 100755 --- a/module/product/test/model/updateprojects.php +++ b/module/product/test/model/updateprojects.php @@ -3,6 +3,7 @@ include dirname(__FILE__, 5) . "/test/lib/init.php"; include dirname(__FILE__, 2) . '/product.class.php'; su('admin'); + /** title=测试productModel->updateProjects(); diff --git a/module/product/test/model/yaml/concatproductline/line.yaml b/module/product/test/model/yaml/concatproductline/line.yaml new file mode 100644 index 0000000000..8eea689f09 --- /dev/null +++ b/module/product/test/model/yaml/concatproductline/line.yaml @@ -0,0 +1,13 @@ +title: product line +desc: Build product line data. +author: zhouxin +version: 1.0.0 + +fields: + - field: type + range: 'line' + - field: name + range: 1-5 + prefix: '产品线' + - field: root + range: 1 diff --git a/module/product/test/model/yaml/concatproductline/product.yaml b/module/product/test/model/yaml/concatproductline/product.yaml new file mode 100644 index 0000000000..360eb6575d --- /dev/null +++ b/module/product/test/model/yaml/concatproductline/product.yaml @@ -0,0 +1,15 @@ +title: product data +desc: Build product data. +author: zhouxin +version: 1.0.0 + +fields: + - field: name + range: 1-30 + prefix: '产品' + - field: program + range: 1 + - field: line + range: 1{5},2{5},3{5},4{5},5{5},6{5} + - field: status + range: 'normal' diff --git a/module/product/test/product.class.php b/module/product/test/product.class.php index 8cb2cbd111..68af214c3c 100644 --- a/module/product/test/product.class.php +++ b/module/product/test/product.class.php @@ -1054,6 +1054,20 @@ class productTest } } + /** + * Test for concat product line. + * + * @param array $productIdList + * @access public + * @return object[] + */ + public function concatProductLineTest(array $productIdList): array + { + $this->config->systemMode == 'ALM'; + $products = $this->objectModel->dao->select('*')->from(TABLE_PRODUCT)->where('id')->in($productIdList)->fetchAll(); + return $this->objectModel->concatProductLine($products); + } + /** * 测试创建产品主库 * Test for create main lib.