+ [misc] Add unit tests for searchTao::checkProductPriv() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -125,4 +125,20 @@ class searchTaoTest extends baseTest
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test checkProductPriv method.
|
||||
*
|
||||
* @param array $results
|
||||
* @param array $objectIdList
|
||||
* @param string $products
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function checkProductPrivTest(array $results, array $objectIdList, string $products): array
|
||||
{
|
||||
$result = $this->invokeArgs('checkProductPriv', [$results, $objectIdList, $products]);
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 searchTao::checkProductPriv();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 执行searchTest模块的checkProductPrivTest方法,参数是$results1, $objectIdList1, $products1 第1条的objectID属性 @1
|
||||
- 执行searchTest模块的checkProductPrivTest方法,参数是$results2, $objectIdList2, $products2 @0
|
||||
- 执行searchTest模块的checkProductPrivTest方法,参数是$results3, $objectIdList3, $products3 @0
|
||||
- 执行searchTest模块的checkProductPrivTest方法,参数是$results4, $objectIdList4, $products4 @0
|
||||
- 执行searchTest模块的checkProductPrivTest方法,参数是$results5, $objectIdList5, $products5
|
||||
- 第1条的objectID属性 @1
|
||||
- 第3条的objectID属性 @3
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/tao.class.php';
|
||||
|
||||
$product = zenData('product');
|
||||
$product->id->range('1-10');
|
||||
$product->name->range('Product1,Product2,Product3,Product4,Product5,Product6,Product7,Product8,Product9,Product10');
|
||||
$product->code->range('code1,code2,code3,code4,code5,code6,code7,code8,code9,code10');
|
||||
$product->shadow->range('0,0,0,0,0,0,0,1,1,1');
|
||||
$product->type->range('normal');
|
||||
$product->status->range('normal');
|
||||
$product->acl->range('open');
|
||||
$product->gen(10);
|
||||
|
||||
su('admin');
|
||||
|
||||
$searchTest = new searchTaoTest();
|
||||
|
||||
$results1 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'product', 'title' => 'Test Result 1'));
|
||||
$objectIdList1 = array(1 => 1);
|
||||
$products1 = '1,2,3,4,5,6,7';
|
||||
r($searchTest->checkProductPrivTest($results1, $objectIdList1, $products1)) && p('1:objectID') && e('1');
|
||||
|
||||
$results2 = array(2 => (object)array('id' => 2, 'objectID' => 2, 'objectType' => 'product', 'title' => 'Test Result 2'));
|
||||
$objectIdList2 = array(2 => 2);
|
||||
$products2 = '1,3,4,5,6,7';
|
||||
r(count($searchTest->checkProductPrivTest($results2, $objectIdList2, $products2))) && p() && e('0');
|
||||
|
||||
$results3 = array(4 => (object)array('id' => 4, 'objectID' => 8, 'objectType' => 'product', 'title' => 'Test Result 4'));
|
||||
$objectIdList3 = array(8 => 4);
|
||||
$products3 = '1,2,3,4,5,6,7,8,9,10';
|
||||
r(count($searchTest->checkProductPrivTest($results3, $objectIdList3, $products3))) && p() && e('0');
|
||||
|
||||
$results4 = array();
|
||||
$objectIdList4 = array();
|
||||
$products4 = '1,2,3,4,5,6,7';
|
||||
r(count($searchTest->checkProductPrivTest($results4, $objectIdList4, $products4))) && p() && e('0');
|
||||
|
||||
$results5 = array(1 => (object)array('id' => 1, 'objectID' => 1, 'objectType' => 'product', 'title' => 'Test Result 1'), 2 => (object)array('id' => 2, 'objectID' => 2, 'objectType' => 'product', 'title' => 'Test Result 2'), 3 => (object)array('id' => 3, 'objectID' => 3, 'objectType' => 'product', 'title' => 'Test Result 3'), 4 => (object)array('id' => 4, 'objectID' => 8, 'objectType' => 'product', 'title' => 'Test Result 4'), 5 => (object)array('id' => 5, 'objectID' => 9, 'objectType' => 'product', 'title' => 'Test Result 5'), 6 => (object)array('id' => 6, 'objectID' => 10, 'objectType' => 'product', 'title' => 'Test Result 6'));
|
||||
$objectIdList5 = array(1 => 1, 2 => 2, 3 => 3, 8 => 4, 9 => 5, 10 => 6);
|
||||
$products5 = '1,3,5,6,7';
|
||||
r($searchTest->checkProductPrivTest($results5, $objectIdList5, $products5)) && p('1:objectID;3:objectID') && e('1;3');
|
||||
@@ -0,0 +1,131 @@
|
||||
---
|
||||
title: Product data for checkProductPriv test
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: Product ID
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
|
||||
- field: program
|
||||
note: Program ID
|
||||
range: 0
|
||||
|
||||
- field: name
|
||||
note: Product name
|
||||
range: Product1,Product2,Product3,Product4,Product5,Product6,Product7,Product8,Product9,Product10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
|
||||
- field: code
|
||||
note: Product code
|
||||
range: code1,code2,code3,code4,code5,code6,code7,code8,code9,code10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
|
||||
- field: shadow
|
||||
note: Shadow flag (0=normal, 1=shadow)
|
||||
range: 0,0,0,0,0,0,0,1,1,1
|
||||
|
||||
- field: bind
|
||||
note: Bind flag
|
||||
range: '0'
|
||||
|
||||
- field: line
|
||||
note: Product line
|
||||
range: 0
|
||||
|
||||
- field: type
|
||||
note: Product type
|
||||
range: normal
|
||||
|
||||
- field: status
|
||||
note: Product status
|
||||
range: normal
|
||||
|
||||
- field: subStatus
|
||||
note: Product sub status
|
||||
range: ""
|
||||
|
||||
- field: desc
|
||||
note: Product description
|
||||
range: Test product description
|
||||
|
||||
- field: PO
|
||||
note: Product owner
|
||||
range: admin
|
||||
|
||||
- field: QD
|
||||
note: QD
|
||||
range: ""
|
||||
|
||||
- field: RD
|
||||
note: RD
|
||||
range: ""
|
||||
|
||||
- field: feedback
|
||||
note: Feedback
|
||||
range: ""
|
||||
|
||||
- field: ticket
|
||||
note: Ticket
|
||||
range: ""
|
||||
|
||||
- field: workflowGroup
|
||||
note: Workflow group
|
||||
range: 0
|
||||
|
||||
- field: acl
|
||||
note: ACL
|
||||
range: open
|
||||
|
||||
- field: groups
|
||||
note: Groups
|
||||
range: ""
|
||||
|
||||
- field: whitelist
|
||||
note: Whitelist
|
||||
range: ""
|
||||
|
||||
- field: reviewer
|
||||
note: Reviewer
|
||||
range: ""
|
||||
|
||||
- field: PMT
|
||||
note: PMT
|
||||
range: ""
|
||||
|
||||
- field: draftEpics
|
||||
note: Draft epics
|
||||
range: 0
|
||||
|
||||
- field: activeEpics
|
||||
note: Active epics
|
||||
range: 0
|
||||
|
||||
- field: changingEpics
|
||||
note: Changing epics
|
||||
range: 0
|
||||
|
||||
- field: reviewingEpics
|
||||
note: Reviewing epics
|
||||
range: 0
|
||||
|
||||
- field: finishedEpics
|
||||
note: Finished epics
|
||||
range: 0
|
||||
|
||||
- field: closedEpics
|
||||
note: Closed epics
|
||||
range: 0
|
||||
|
||||
- field: totalEpics
|
||||
note: Total epics
|
||||
range: 0
|
||||
|
||||
- field: draftRequirements
|
||||
note: Draft requirements
|
||||
range: 0
|
||||
Reference in New Issue
Block a user