예제 #1
0
파일: api_test.php 프로젝트: dg711/moodle
 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());
 }
예제 #2
0
 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);
 }