diff --git a/module/programplan/test/lib/programplan.unittest.class.php b/module/programplan/test/lib/programplan.unittest.class.php index 54a8484343..a005c62ac7 100644 --- a/module/programplan/test/lib/programplan.unittest.class.php +++ b/module/programplan/test/lib/programplan.unittest.class.php @@ -7,6 +7,7 @@ class programplanTest { global $tester; $this->objectModel = $tester->loadModel('programplan'); + $this->objectTao = $tester->loadTao('programplan'); $tester->dao->delete()->from(TABLE_PROJECTSPEC)->exec(); $this->objectModel->app->user->admin = true; @@ -529,4 +530,20 @@ class programplanTest $this->objectModel->syncParentData($executionID, $parentID); return $this->objectModel->dao->select('*')->from(TABLE_TASK)->where('execution')->eq($executionID)->fetchAll(); } + + /** + * Test setPlanBaseline method. + * + * @param array $oldPlans + * @param array $plans + * @access public + * @return array + */ + public function setPlanBaselineTest(array $oldPlans, array $plans): array + { + $result = $this->objectTao->setPlanBaseline($oldPlans, $plans); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/programplan/test/tao/setplanbaseline.php b/module/programplan/test/tao/setplanbaseline.php new file mode 100755 index 0000000000..85df2cf09c --- /dev/null +++ b/module/programplan/test/tao/setplanbaseline.php @@ -0,0 +1,60 @@ +#!/usr/bin/env php +loadModel('programplan'); + +$oldPlans[1] = new stdclass(); +$oldPlans[1]->version = 1; +$oldPlans[1]->name = 'Plan A'; +$oldPlans[1]->milestone = '1'; +$oldPlans[1]->begin = '2023-01-01'; +$oldPlans[1]->end = '2023-01-31'; + +$newPlans[1] = new stdclass(); +$newPlans[1]->id = 1; +$newPlans[1]->currentName = 'Current Plan'; + +$newPlans2[2] = new stdclass(); +$newPlans2[2]->name = 'Plan B'; + +$newPlans3[1] = new stdclass(); +$newPlans3[1]->name = 'New Plan A'; + +$oldPlans2[1] = new stdclass(); +$oldPlans2[1]->version = 2; +$oldPlans2[1]->name = ''; +$oldPlans2[1]->milestone = '0'; +$oldPlans2[1]->begin = ''; +$oldPlans2[1]->end = ''; + +$newPlans4[1] = new stdclass(); +$newPlans4[1]->currentName = 'Current Plan'; + +r($tester->programplan->setPlanBaseline($oldPlans, $newPlans)) && p('1:name,version,milestone,begin,end') && e('Plan A,1,1,2023-01-01,2023-01-31'); +r($tester->programplan->setPlanBaseline($oldPlans, $newPlans2)) && p('2:name') && e('Plan B'); +r($tester->programplan->setPlanBaseline($oldPlans, array())) && p() && e('0'); +r($tester->programplan->setPlanBaseline(array(), $newPlans3)) && p('1:name') && e('New Plan A'); +r($tester->programplan->setPlanBaseline($oldPlans2, $newPlans4)) && p('1:version') && e('2'); \ No newline at end of file