public function test_unlink_plan_from_template() { $this->resetAfterTest(true); $dg = $this->getDataGenerator(); $lpg = $dg->get_plugin_generator('core_competency'); $u1 = $dg->create_user(); $u2 = $dg->create_user(); $this->setAdminUser(); $f1 = $lpg->create_framework(); $f2 = $lpg->create_framework(); $c1a = $lpg->create_competency(array('competencyframeworkid' => $f1->get_id())); $c2a = $lpg->create_competency(array('competencyframeworkid' => $f2->get_id())); $c1b = $lpg->create_competency(array('competencyframeworkid' => $f1->get_id())); $tpl1 = $lpg->create_template(); $tpl2 = $lpg->create_template(); $tplc1a = $lpg->create_template_competency(array('templateid' => $tpl1->get_id(), 'competencyid' => $c1a->get_id(), 'sortorder' => 9)); $tplc1b = $lpg->create_template_competency(array('templateid' => $tpl1->get_id(), 'competencyid' => $c1b->get_id(), 'sortorder' => 8)); $tplc2a = $lpg->create_template_competency(array('templateid' => $tpl2->get_id(), 'competencyid' => $c2a->get_id())); $plan1 = $lpg->create_plan(array('userid' => $u1->id, 'templateid' => $tpl1->get_id(), 'status' => plan::STATUS_ACTIVE)); $plan2 = $lpg->create_plan(array('userid' => $u2->id, 'templateid' => $tpl2->get_id())); $plan3 = $lpg->create_plan(array('userid' => $u1->id, 'templateid' => $tpl1->get_id(), 'status' => plan::STATUS_COMPLETE)); // Check that we have what we expect at this stage. $this->assertEquals(2, \core_competency\template_competency::count_records(array('templateid' => $tpl1->get_id()))); $this->assertEquals(1, \core_competency\template_competency::count_records(array('templateid' => $tpl2->get_id()))); $this->assertEquals(0, \core_competency\plan_competency::count_records(array('planid' => $plan1->get_id()))); $this->assertEquals(0, \core_competency\plan_competency::count_records(array('planid' => $plan2->get_id()))); $this->assertTrue($plan1->is_based_on_template()); $this->assertTrue($plan2->is_based_on_template()); // Let's do this! $tpl1comps = \core_competency\template_competency::list_competencies($tpl1->get_id(), true); $tpl2comps = \core_competency\template_competency::list_competencies($tpl2->get_id(), true); api::unlink_plan_from_template($plan1); $plan1->read(); $plan2->read(); $this->assertCount(2, $tpl1comps); $this->assertCount(1, $tpl2comps); $this->assertEquals(2, \core_competency\template_competency::count_records(array('templateid' => $tpl1->get_id()))); $this->assertEquals(1, \core_competency\template_competency::count_records(array('templateid' => $tpl2->get_id()))); $this->assertEquals(2, \core_competency\plan_competency::count_records(array('planid' => $plan1->get_id()))); $this->assertEquals(0, \core_competency\plan_competency::count_records(array('planid' => $plan2->get_id()))); $this->assertFalse($plan1->is_based_on_template()); $this->assertEquals($tpl1->get_id(), $plan1->get_origtemplateid()); $this->assertTrue($plan2->is_based_on_template()); $this->assertEquals(null, $plan2->get_origtemplateid()); // Check we can unlink draft plan. try { api::unlink_plan_from_template($plan2); } catch (coding_exception $e) { $this->fail('Fail to unlink draft plan.'); } // Check we can not unlink completed plan. try { api::unlink_plan_from_template($plan3); $this->fail('We can not unlink completed plan.'); } catch (coding_exception $e) { // All good. } // Even the order remains. $plan1comps = \core_competency\plan_competency::list_competencies($plan1->get_id()); $before = reset($tpl1comps); $after = reset($plan1comps); $this->assertEquals($before->get_id(), $after->get_id()); $this->assertEquals($before->get_sortorder(), $after->get_sortorder()); $before = next($tpl1comps); $after = next($plan1comps); $this->assertEquals($before->get_id(), $after->get_id()); $this->assertEquals($before->get_sortorder(), $after->get_sortorder()); }
public function test_create_template_competency() { $this->resetAfterTest(true); $lpg = $this->getDataGenerator()->get_plugin_generator('core_competency'); $this->assertEquals(0, template_competency::count_records()); $framework = $lpg->create_framework(); $c1 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); $c2 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); $template = $lpg->create_template(); $relation = $lpg->create_template_competency(array('competencyid' => $c1->get_id(), 'templateid' => $template->get_id())); $relation = $lpg->create_template_competency(array('competencyid' => $c2->get_id(), 'templateid' => $template->get_id())); $this->assertEquals(2, template_competency::count_records()); $this->assertInstanceOf('\\core_competency\\template_competency', $relation); }