/**
  * Test update course competency settings.
  */
 public function test_update_course_competency_settings()
 {
     $this->resetAfterTest(true);
     $dg = $this->getDataGenerator();
     $course = $dg->create_course();
     $roleid = $dg->create_role();
     $noobroleid = $dg->create_role();
     $context = context_course::instance($course->id);
     $compmanager = $this->getDataGenerator()->create_user();
     $compnoob = $this->getDataGenerator()->create_user();
     assign_capability('moodle/competency:coursecompetencyconfigure', CAP_ALLOW, $roleid, $context->id, true);
     assign_capability('moodle/competency:coursecompetencyview', CAP_ALLOW, $roleid, $context->id, true);
     assign_capability('moodle/competency:coursecompetencyview', CAP_ALLOW, $noobroleid, $context->id, true);
     role_assign($roleid, $compmanager->id, $context->id);
     role_assign($noobroleid, $compnoob->id, $context->id);
     $dg->enrol_user($compmanager->id, $course->id, $roleid);
     $dg->enrol_user($compnoob->id, $course->id, $noobroleid);
     $this->setUser($compmanager);
     // Start the test.
     $result = external::update_course_competency_settings($course->id, array('pushratingstouserplans' => true));
     $settings = course_competency_settings::get_by_courseid($course->id);
     $this->assertTrue((bool) $settings->get_pushratingstouserplans());
     $result = external::update_course_competency_settings($course->id, array('pushratingstouserplans' => false));
     $settings = course_competency_settings::get_by_courseid($course->id);
     $this->assertFalse((bool) $settings->get_pushratingstouserplans());
     $this->setUser($compnoob);
     $this->setExpectedException('required_capability_exception');
     $result = external::update_course_competency_settings($course->id, array('pushratingstouserplans' => true));
 }