Exemple #1
0
 /**
  * Test validation on grade on user_competency.
  */
 public function test_validate_grade_in_user_competency()
 {
     global $DB;
     $this->resetAfterTest(true);
     $this->setAdminUser();
     $dg = $this->getDataGenerator();
     $lpg = $this->getDataGenerator()->get_plugin_generator('core_competency');
     $user = $dg->create_user();
     $s1 = $dg->create_scale(array("scale" => "value1, value2"));
     $s2 = $dg->create_scale(array("scale" => "value3, value4, value5, value6"));
     $scaleconfiguration1 = '[{"scaleid":"' . $s1->id . '"},{"name":"value1","id":1,"scaledefault":1,"proficient":0},' . '{"name":"value2","id":2,"scaledefault":0,"proficient":1}]';
     $scaleconfiguration2 = '[{"scaleid":"' . $s2->id . '"},{"name":"value3","id":1,"scaledefault":1,"proficient":0},' . '{"name":"value4","id":2,"scaledefault":0,"proficient":1}]';
     // Create a framework with scale configuration1.
     $frm = array('scaleid' => $s1->id, 'scaleconfiguration' => $scaleconfiguration1);
     $framework = $lpg->create_framework($frm);
     $c1 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id()));
     // Create competency with its own scale configuration.
     $c2 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id(), 'scaleid' => $s2->id, 'scaleconfiguration' => $scaleconfiguration2));
     // Detecte invalid grade in competency using its framework competency scale.
     try {
         $usercompetency = new user_competency(0, (object) array('userid' => $user->id, 'competencyid' => $c1->get_id(), 'proficiency' => true, 'grade' => 3));
         $usercompetency->create();
         $this->fail('Invalid grade not detected in framework scale');
     } catch (\core_competency\invalid_persistent_exception $e) {
         $this->assertTrue(true);
     }
     // Detecte invalid grade in competency using its own scale.
     try {
         $usercompetency = new user_competency(0, (object) array('userid' => $user->id, 'competencyid' => $c2->get_id(), 'proficiency' => true, 'grade' => 5));
         $usercompetency->create();
         $this->fail('Invalid grade not detected in competency scale');
     } catch (\core_competency\invalid_persistent_exception $e) {
         $this->assertTrue(true);
     }
     // Accept valid grade in competency using its framework competency scale.
     try {
         $usercompetency = new user_competency(0, (object) array('userid' => $user->id, 'competencyid' => $c1->get_id(), 'proficiency' => true, 'grade' => 1));
         $usercompetency->create();
         $this->assertTrue(true);
     } catch (\core_competency\invalid_persistent_exception $e) {
         $this->fail('Valide grade rejected in framework scale');
     }
     // Accept valid grade in competency using its framework competency scale.
     try {
         $usercompetency = new user_competency(0, (object) array('userid' => $user->id, 'competencyid' => $c2->get_id(), 'proficiency' => true, 'grade' => 4));
         $usercompetency->create();
         $this->assertTrue(true);
     } catch (\core_competency\invalid_persistent_exception $e) {
         $this->fail('Valide grade rejected in competency scale');
     }
 }
Exemple #2
0
 /**
  * Create a new user competency.
  *
  * @param array|stdClass $record
  * @return user_competency
  */
 public function create_user_competency($record = null)
 {
     $record = (object) $record;
     if (!isset($record->userid)) {
         throw new coding_exception('The userid value is required.');
     }
     if (!isset($record->competencyid)) {
         throw new coding_exception('The competencyid value is required.');
     }
     $usercompetency = new user_competency(0, $record);
     $usercompetency->create();
     return $usercompetency;
 }