Ejemplo n.º 1
0
 public function test_remove_competency_from_template()
 {
     $syscontext = context_system::instance();
     $this->setUser($this->creator);
     $lpg = $this->getDataGenerator()->get_plugin_generator('core_competency');
     // Create a template.
     $template = $this->create_template(1, true);
     // Create a competency.
     $framework = $lpg->create_framework();
     $competency = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id()));
     // Add the competency.
     external::add_competency_to_template($template->id, $competency->get_id());
     // Check that it was added.
     $this->assertEquals(1, external::count_competencies_in_template($template->id));
     // Check that we can remove the competency.
     external::remove_competency_from_template($template->id, $competency->get_id());
     // Check that it was removed.
     $this->assertEquals(0, external::count_competencies_in_template($template->id));
     // Unassign capability.
     unassign_capability('moodle/competency:templatemanage', $this->creatorrole, $syscontext->id);
     accesslib_clear_all_caches_for_unit_testing();
     // Check we can not remove the competency now.
     try {
         external::add_competency_to_template($template->id, $competency->get_id());
         $this->fail('Exception expected due to not permissions to manage template competencies');
     } catch (moodle_exception $e) {
         $this->assertEquals('nopermissions', $e->errorcode);
     }
 }