本文整理汇总了PHP中core_competency\api::approve_plan方法的典型用法代码示例。如果您正苦于以下问题:PHP api::approve_plan方法的具体用法?PHP api::approve_plan怎么用?PHP api::approve_plan使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类core_competency\api
的用法示例。
在下文中一共展示了api::approve_plan方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: approve_plan
/**
* External function approve_plan.
*
* @param int $id The plan ID.
* @return boolean
*/
public static function approve_plan($id)
{
$params = self::validate_parameters(self::approve_plan_parameters(), array('id' => $id));
$plan = api::read_plan($id);
self::validate_context($plan->get_context());
return api::approve_plan($plan);
}
示例2: test_approve_plan
/**
* Testing approving the plan.
*/
public function test_approve_plan()
{
$data = $this->setup_workflow_data();
$dg = $data['dg'];
$lpg = $data['lpg'];
$user = $data['user'];
$reviewer = $data['reviewer'];
$otheruser = $data['otheruser'];
$plan = $data['plan'];
$tplplan = $data['tplplan'];
// Set waiting for review.
$tplplan->set_status(plan::STATUS_IN_REVIEW);
$tplplan->update();
$plan->set_status(plan::STATUS_IN_REVIEW);
$plan->update();
// Foreign user cannot do anything.
$this->setUser($otheruser);
try {
api::approve_plan($plan);
$this->fail('The user can not read the plan.');
} catch (required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
// Can not change a plan based on a template.
$this->setUser($reviewer);
try {
api::approve_plan($tplplan);
$this->fail('The plan is based on a template.');
} catch (coding_exception $e) {
$this->assertRegExp('/Template plans are already approved./', $e->getMessage());
}
// Can not approve a plan already approved.
$this->setUser($reviewer);
$plan->set_status(plan::STATUS_ACTIVE);
try {
api::approve_plan($plan);
$this->fail('The plan cannot be approved at this stage.');
} catch (coding_exception $e) {
$this->assertRegExp('/The plan cannot be approved at this stage./', $e->getMessage());
}
// Can not approve a plan already approved.
$this->setUser($reviewer);
$plan->set_status(plan::STATUS_COMPLETE);
try {
api::approve_plan($plan);
$this->fail('The plan cannot be approved at this stage.');
} catch (coding_exception $e) {
$this->assertRegExp('/The plan cannot be approved at this stage./', $e->getMessage());
}
// Approve as the owner.
$this->setUser($user);
$plan->set_status(plan::STATUS_IN_REVIEW);
try {
api::approve_plan($plan);
$this->fail('The user can not approve the plan.');
} catch (required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
// Approve plan from in review.
$this->setUser($reviewer);
api::approve_plan($plan);
$plan->read();
$this->assertEquals(plan::STATUS_ACTIVE, $plan->get_status());
// Approve plan by ID.
$plan->set_status(plan::STATUS_IN_REVIEW);
$plan->update();
api::approve_plan($plan->get_id());
$plan->read();
$this->assertEquals(plan::STATUS_ACTIVE, $plan->get_status());
// Approve plan from draft.
$plan->set_status(plan::STATUS_DRAFT);
$plan->update();
api::approve_plan($plan);
$plan->read();
$this->assertEquals(plan::STATUS_ACTIVE, $plan->get_status());
// Approve plan from waiting for review.
$plan->set_status(plan::STATUS_WAITING_FOR_REVIEW);
$plan->update();
api::approve_plan($plan);
$plan->read();
$this->assertEquals(plan::STATUS_ACTIVE, $plan->get_status());
}
示例3: test_plan_approved
/**
* Test the plan approved event.
*
*/
public function test_plan_approved()
{
$this->resetAfterTest(true);
$this->setAdminUser();
$dg = $this->getDataGenerator();
$lpg = $this->getDataGenerator()->get_plugin_generator('core_competency');
$user1 = $dg->create_user();
$plan = $lpg->create_plan(array('userid' => $user1->id));
$planid = $plan->get_id();
$contextid = $plan->get_context()->id;
// Trigger and capture the event.
$sink = $this->redirectEvents();
$result = api::approve_plan($plan->get_id());
$this->assertTrue($result);
// Get our event event.
$events = $sink->get_events();
$event = reset($events);
$this->assertInstanceOf('\\core\\event\\competency_plan_approved', $event);
$this->assertEquals($planid, $event->objectid);
$this->assertEquals($contextid, $event->contextid);
$this->assertEquals($plan->get_userid(), $event->relateduserid);
$this->assertEventContextNotUsed($event);
$this->assertDebuggingNotCalled();
}