/** * Test we can re-order competency frameworks. */ public function test_reorder_template_competencies() { $this->setUser($this->creator); $syscontext = context_system::instance(); $onehour = time() + 60 * 60; // Create a template. $template = $this->create_template(1, true); // Create a competency framework. $framework = $this->create_competency_framework(1, true); // Create multiple competencies. $competency1 = $this->create_competency(1, $framework->id); $competency2 = $this->create_competency(2, $framework->id); $competency3 = $this->create_competency(3, $framework->id); $competency4 = $this->create_competency(4, $framework->id); // Add the competencies. external::add_competency_to_template($template->id, $competency1->id); external::add_competency_to_template($template->id, $competency2->id); external::add_competency_to_template($template->id, $competency3->id); external::add_competency_to_template($template->id, $competency4->id); // Test if removing competency from template don't create sortorder holes. external::remove_competency_from_template($template->id, $competency3->id); $templcomp4 = template_competency::get_record(array('templateid' => $template->id, 'competencyid' => $competency4->id)); $this->assertEquals(2, $templcomp4->get_sortorder()); // This is a move up. external::reorder_template_competency($template->id, $competency4->id, $competency2->id); $result = external::list_competencies_in_template($template->id); $result = external_api::clean_returnvalue(external::list_competencies_in_template_returns(), $result); $r1 = (object) $result[0]; $r2 = (object) $result[1]; $r3 = (object) $result[2]; $this->assertEquals($competency1->id, $r1->id); $this->assertEquals($competency4->id, $r2->id); $this->assertEquals($competency2->id, $r3->id); // This is a move down. external::reorder_template_competency($template->id, $competency1->id, $competency4->id); $result = external::list_competencies_in_template($template->id); $result = external_api::clean_returnvalue(external::list_competencies_in_template_returns(), $result); $r1 = (object) $result[0]; $r2 = (object) $result[1]; $r3 = (object) $result[2]; $this->assertEquals($competency4->id, $r1->id); $this->assertEquals($competency1->id, $r2->id); $this->assertEquals($competency2->id, $r3->id); $this->setExpectedException('required_capability_exception'); $this->setUser($this->user); external::reorder_template_competency($template->id, $competency1->id, $competency2->id); }