znt/module/programplan/test/zen/sortplans.php

82 lines
2.7 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 programplanZen::sortPlans();
timeout=0
cid=17795
- 执行programplanTest模块的sortPlansTest方法参数是array @0
- 执行programplanTest模块的sortPlansTest方法参数是$singlePlan 第1条的id属性 @1
- 第一个应该是子阶段,因为它在原数组中排在前面 @2
- 父阶段在前,其子阶段紧随其后 @1,2
- 验证所有5个计划都被处理 @5
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
su('admin');
$programplanTest = new programplanZenTest();
// 测试步骤1空数组排序
r($programplanTest->sortPlansTest(array())) && p() && e(0);
// 测试步骤2单个计划排序
$singlePlan = array();
$plan = new stdClass();
$plan->id = 1;
$plan->parent = 0;
$singlePlan[1] = $plan;
r($programplanTest->sortPlansTest($singlePlan)) && p('1:id') && e('1');
// 测试步骤3父子关系排序子阶段在前父阶段在后的情况
$parentChildPlans = array();
$childPlan = new stdClass();
$childPlan->id = 2;
$childPlan->parent = 1;
$parentPlan = new stdClass();
$parentPlan->id = 1;
$parentPlan->parent = 0;
$parentChildPlans[2] = $childPlan; // 子阶段先加入
$parentChildPlans[1] = $parentPlan; // 父阶段后加入
$result = $programplanTest->sortPlansTest($parentChildPlans);
$keys = array_keys($result);
r($keys[0]) && p() && e('2'); // 第一个应该是子阶段,因为它在原数组中排在前面
// 测试步骤4父子关系排序父阶段在前子阶段在后的情况
$parentFirstPlans = array();
$parentPlan = new stdClass();
$parentPlan->id = 1;
$parentPlan->parent = 0;
$childPlan = new stdClass();
$childPlan->id = 2;
$childPlan->parent = 1;
$parentFirstPlans[1] = $parentPlan; // 父阶段先加入
$parentFirstPlans[2] = $childPlan; // 子阶段后加入
$result = $programplanTest->sortPlansTest($parentFirstPlans);
$keys = array_keys($result);
r(implode(',', $keys)) && p() && e('1,2'); // 父阶段在前,其子阶段紧随其后
// 测试步骤5复杂多层次排序
$complexPlans = array();
$plans = array(
array('id' => 4, 'parent' => 0), // 根节点2先处理
array('id' => 1, 'parent' => 0), // 根节点1后处理
array('id' => 2, 'parent' => 1), // 1的子节点
array('id' => 5, 'parent' => 4), // 4的子节点
array('id' => 3, 'parent' => 1), // 1的子节点
);
foreach($plans as $planData) {
$plan = new stdClass();
$plan->id = $planData['id'];
$plan->parent = $planData['parent'];
$complexPlans[$plan->id] = $plan;
}
$result = $programplanTest->sortPlansTest($complexPlans);
$keys = array_keys($result);
r(count($keys)) && p() && e('5'); // 验证所有5个计划都被处理