/**
  * Test make_filter_options_custom function
  */
 public function test_make_filter_options_custom()
 {
     global $DB;
     // Fixture.
     $datagenerator = new elis_program_datagenerator($DB);
     $pgm = $datagenerator->create_program();
     $course = $datagenerator->create_course();
     $pmclass = $datagenerator->create_pmclass(array('courseid' => $course->id));
     $dataset = $this->createCsvDataSet(array('local_elisprogram_env' => elispm::file('tests/fixtures/environment.csv')));
     $this->loadDataSet($dataset);
     // Tests.
     $choicestests = array('curriculum' => array('name' => array($pgm->id => $pgm->name)), 'course' => array('name' => array($course->id => $course->name)), 'class' => array('idnumber' => array($pmclass->id => $pmclass->idnumber), 'environmentid' => array(1 => 'Testing')));
     foreach ($choicestests as $group => $names) {
         foreach ($names as $name => $expectedchoices) {
             $curclassopts = array('choices' => array(), 'wrapper' => array($group => ''));
             $filter = new generalized_filter_curriculumclass('filt-curriculumclass', 'Null', $curclassopts);
             $options = $filter->make_filter_options_custom(array(), $group, $name);
             $this->assertInternalType('array', $options);
             $this->assertArrayHasKey('choices', $options);
             $this->assertInternalType('array', $options['choices']);
             $this->assertEquals($expectedchoices, $options['choices']);
             unset($filter);
         }
     }
 }
 /**
  * Test successful course update.
  */
 public function test_success()
 {
     global $DB;
     // Create custom field.
     $fieldcat = new field_category();
     $fieldcat->name = 'Test';
     $fieldcat->save();
     $field = new field();
     $field->categoryid = $fieldcat->id;
     $field->shortname = 'testfield';
     $field->name = 'Test Field';
     $field->datatype = 'text';
     $field->save();
     $fieldctx = new field_contextlevel();
     $fieldctx->fieldid = $field->id;
     $fieldctx->contextlevel = CONTEXT_ELIS_COURSE;
     $fieldctx->save();
     // Grant permissions.
     $this->give_permissions(array('local/elisprogram:course_edit'));
     // Create test program.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'TestProgram'));
     // Create test course to update.
     $crs = new course(array('idnumber' => 'TestCourse', 'name' => 'Test Course', 'syllabus' => ''));
     $crs->save();
     $course = array('idnumber' => 'TestCourse', 'name' => 'Test Course', 'code' => 'CRS1', 'syllabus' => 'Test syllabus', 'lengthdescription' => 'Weeks', 'length' => 2, 'credits' => 1.1, 'completion_grade' => 50, 'cost' => '$100', 'version' => '1.0.0', 'assignment' => $program->idnumber);
     // Update test course.
     $response = local_datahub_elis_course_update::course_update($course);
     $this->assertNotEmpty($response);
     $this->assertInternalType('array', $response);
     $this->assertArrayHasKey('messagecode', $response);
     $this->assertArrayHasKey('message', $response);
     $this->assertArrayHasKey('record', $response);
     $this->assertEquals(get_string('ws_course_update_success_code', 'local_datahub'), $response['messagecode']);
     $this->assertEquals(get_string('ws_course_update_success_msg', 'local_datahub'), $response['message']);
     $this->assertInternalType('array', $response['record']);
     $this->assertArrayHasKey('id', $response['record']);
     // Get course.
     $updatedcourse = new course($response['record']['id']);
     $updatedcourse->load();
     $updatedcourse = $updatedcourse->to_array();
     foreach ($course as $param => $val) {
         if ($param != 'assignment') {
             $this->assertArrayHasKey($param, $updatedcourse);
             $this->assertEquals($val, $updatedcourse[$param]);
         }
     }
     // Check that course was assigned to program.
     $curriculumcourseid = $DB->get_field(curriculumcourse::TABLE, 'id', array('curriculumid' => $program->id, 'courseid' => $response['record']['id']));
     $this->assertNotEmpty($curriculumcourseid);
 }
Beispiel #3
0
 /**
  * Test get_completion_counts function.
  */
 public function test_get_completion_counts()
 {
     global $DB;
     // Fixture.
     $elisgen = new elis_program_datagenerator($DB);
     $pmcourse = $elisgen->create_course();
     $class = $elisgen->create_pmclass(array('courseid' => $pmcourse->id));
     $class2 = $elisgen->create_pmclass(array('courseid' => $pmcourse->id));
     $user = $elisgen->create_user();
     $user2 = $elisgen->create_user();
     $elisgen->assign_user_to_class($user->id, $class->id);
     $elisgen->assign_user_to_class($user2->id, $class2->id);
     $course = new course();
     $course->id = $pmcourse->id;
     $completioncounts = $course->get_completion_counts();
     // Verify results.
     $this->assertInternalType('array', $completioncounts);
     $this->assertEquals(3, count($completioncounts));
     $this->assertArrayHasKey(STUSTATUS_NOTCOMPLETE, $completioncounts);
     $this->assertArrayHasKey(STUSTATUS_FAILED, $completioncounts);
     $this->assertArrayHasKey(STUSTATUS_PASSED, $completioncounts);
     $this->assertEquals(2, $completioncounts[STUSTATUS_NOTCOMPLETE]);
     $this->assertEquals(0, $completioncounts[STUSTATUS_FAILED]);
     $this->assertEquals(0, $completioncounts[STUSTATUS_PASSED]);
 }
Beispiel #4
0
 /**
  * Test enrol function
  */
 public function test_enrol()
 {
     global $DB;
     // Fixture.
     $elisgen = new elis_program_datagenerator($DB);
     $pgm = $elisgen->create_program();
     $track = $elisgen->create_track(array('curid' => $pgm->id));
     $course = $elisgen->create_course();
     $pmclass = $elisgen->create_pmclass(array('courseid' => $course->id));
     $user = $elisgen->create_user();
     $elisgen->assign_class_to_track($pmclass->id, $course->id, $track->id, true);
     $result = usertrack::enrol($user->id, $track->id);
     $this->assertTrue($result);
     // Validate curriculumstudent rec.
     $rec = $DB->get_record(curriculumstudent::TABLE, array('curriculumid' => $pgm->id, 'userid' => $user->id));
     $this->assertNotEmpty($rec);
     // Validate student rec.
     $rec = $DB->get_record(student::TABLE, array('classid' => $pmclass->id, 'userid' => $user->id));
     $this->assertNotEmpty($rec);
 }
Beispiel #5
0
 /**
  * Test get_dashboard_program_data function.
  */
 public function test_get_dashboard_program_data()
 {
     global $DB;
     $datagen = new elis_program_datagenerator($DB);
     // Create entities.
     $mockuser = $datagen->create_user();
     $pgm = $datagen->create_program();
     $pmcourse = $datagen->create_course();
     $pmclass = $datagen->create_pmclass(array('courseid' => $pmcourse->id));
     // Perform assignments.
     $curcourse = $datagen->assign_course_to_program($pmcourse->id, $pgm->id);
     $curstu = $datagen->assign_user_to_program($mockuser->id, $pgm->id);
     $stu = $datagen->assign_user_to_class($mockuser->id, $pmclass->id);
     $expectedusercurs = array($curstu->id => (object) array('id' => $curstu->id, 'curid' => $pgm->id, 'name' => $pgm->name));
     $expectedcurriculas = array($pgm->id => array('id' => $pgm->id, 'name' => $pgm->name, 'data' => array(array($pmcourse->name, $pmclass->idnumber, $pmcourse->syllabus, 0, get_string('n_completed', 'local_elisprogram'), get_string('na', 'local_elisprogram')))));
     $expectedclassids = array($pmclass->id);
     $expectedtotalcurricula = 1;
     $expectedcompletecoursesmap = array($pgm->id => 0);
     $expectedtotalcoursesmap = array($pgm->id => 1);
     $user = new user();
     $user->id = $mockuser->id;
     list($usercurs, $curriculas, $classids, $totalcurricula, $completecoursesmap, $totalcoursesmap) = $user->get_dashboard_program_data(false, false);
     $this->assertEquals($expectedusercurs, $usercurs);
     $this->assertEquals($expectedcurriculas, $curriculas);
     $this->assertEquals($expectedclassids, $classids);
     $this->assertEquals($expectedtotalcurricula, $totalcurricula);
     $this->assertEquals($expectedcompletecoursesmap, $completecoursesmap);
     $this->assertEquals($expectedtotalcoursesmap, $totalcoursesmap);
     $expectedcurriculas = array();
     $expectedtotalcurricula = 0;
     $expectedcompletecoursesmap = array();
     $expectedtotalcoursesmap = array();
     list($usercurs, $curriculas, $classids, $totalcurricula, $completecoursesmap, $totalcoursesmap) = $user->get_dashboard_program_data(true, true);
     $this->assertEquals($expectedusercurs, $usercurs);
     $this->assertEquals($expectedcurriculas, $curriculas);
     $this->assertEquals($expectedclassids, $classids);
     $this->assertEquals($expectedtotalcurricula, $totalcurricula);
     $this->assertEquals($expectedcompletecoursesmap, $completecoursesmap);
     $this->assertEquals($expectedtotalcoursesmap, $totalcoursesmap);
 }
Beispiel #6
0
 /**
  * Test get_elis_coursecompletion_grades method.
  */
 public function test_get_elis_coursecompletion_grades()
 {
     global $DB;
     $edatagenerator = new \elis_program_datagenerator($DB);
     $pmcourse = $edatagenerator->create_course();
     $pmclass1 = $edatagenerator->create_pmclass(array('courseid' => $pmcourse->id));
     $pmclass2 = $edatagenerator->create_pmclass(array('courseid' => $pmcourse->id));
     $eusers = array();
     $musers = array();
     for ($i = 0; $i < 6; $i++) {
         $euser = $edatagenerator->create_user(array('username' => 'testuser' . $i, 'idnumber' => 'testuser' . $i));
         $muser = $this->getDataGenerator()->create_user(array('username' => 'testuser' . $i, 'idnumber' => 'testuser' . $i));
         $edatagenerator->assign_euser_to_muser($euser->id, $muser->id, $euser->idnumber);
         $eusers[] = $euser;
         $musers[] = $muser;
     }
     $eusernomoodleuser = $edatagenerator->create_user(array('username' => 'testuser5', 'idnumber' => 'testuser5'));
     // Create grades.
     // 1. One user one class one grade.
     $grade1 = new \student_grade(array('userid' => $eusers[0]->id, 'classid' => $pmclass1->id, 'completionid' => 1, 'grade' => 71));
     $grade1->save();
     // 2. One user different class one grade.
     $grade2 = new \student_grade(array('userid' => $eusers[1]->id, 'classid' => $pmclass2->id, 'completionid' => 10, 'grade' => 72));
     $grade2->save();
     // 3. One user first class one grade (this tests a subsequent call with a larger muid but smaller pmclassid).
     $grade3 = new \student_grade(array('userid' => $eusers[2]->id, 'classid' => $pmclass1->id, 'completionid' => 1, 'grade' => 72));
     $grade3->save();
     // 4. One user one class two grades.
     $grade4 = new \student_grade(array('userid' => $eusers[3]->id, 'classid' => $pmclass1->id, 'completionid' => 1, 'grade' => 73));
     $grade4->save();
     $grade5 = new \student_grade(array('userid' => $eusers[3]->id, 'classid' => $pmclass1->id, 'completionid' => 2, 'grade' => 74));
     $grade5->save();
     // 5. One user two classes one grade in each.
     $grade6 = new \student_grade(array('userid' => $eusers[4]->id, 'classid' => $pmclass1->id, 'completionid' => 1, 'grade' => 75));
     $grade6->save();
     $grade7 = new \student_grade(array('userid' => $eusers[4]->id, 'classid' => $pmclass2->id, 'completionid' => 10, 'grade' => 76));
     $grade7->save();
     // 6. One user two classes one grade in one two grades in the other.
     $grade8 = new \student_grade(array('userid' => $eusers[5]->id, 'classid' => $pmclass1->id, 'completionid' => 1, 'grade' => 77));
     $grade8->save();
     $grade9 = new \student_grade(array('userid' => $eusers[5]->id, 'classid' => $pmclass2->id, 'completionid' => 10, 'grade' => 78));
     $grade9->save();
     $grade10 = new \student_grade(array('userid' => $eusers[5]->id, 'classid' => $pmclass2->id, 'completionid' => 11, 'grade' => 79));
     $grade10->save();
     $sync = new \local_elisprogram\moodle\synchronize();
     // 1. One user one class one grade.
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[0]->id, $pmclass1->id);
     $expected = (object) array('userid' => (string) $eusers[0]->id, 'classid' => (string) $pmclass1->id, 'completionid' => '1', 'grade' => '71.00000', 'muid' => (string) $musers[0]->id, 'pmclassid' => $pmclass1->id, 'id' => $grade1->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade1->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected->completionid, $cmgrades);
     $this->assertEquals($expected, $cmgrades[$expected->completionid]);
     // 2. One user different class one grade.
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[1]->id, $pmclass2->id);
     $expected = (object) array('userid' => (string) $eusers[1]->id, 'classid' => (string) $pmclass2->id, 'completionid' => '10', 'grade' => '72.00000', 'muid' => (string) $musers[1]->id, 'pmclassid' => (string) $pmclass2->id, 'id' => $grade2->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade2->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected->completionid, $cmgrades);
     $this->assertEquals($expected, $cmgrades[$expected->completionid]);
     // 3. One user first class one grade (this tests a subsequent call with a larger muid but smaller pmclassid).
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[2]->id, $pmclass1->id);
     $expected = (object) array('userid' => (string) $eusers[2]->id, 'classid' => (string) $pmclass1->id, 'completionid' => '1', 'grade' => '72.00000', 'muid' => (string) $musers[2]->id, 'pmclassid' => (string) $pmclass1->id, 'id' => $grade3->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade3->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected->completionid, $cmgrades);
     $this->assertEquals($expected, $cmgrades[$expected->completionid]);
     // 4. One user one class two grades.
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[3]->id, $pmclass1->id);
     $expected1 = (object) array('userid' => (string) $eusers[3]->id, 'classid' => (string) $pmclass1->id, 'completionid' => '1', 'grade' => '73.00000', 'muid' => (string) $musers[3]->id, 'pmclassid' => (string) $pmclass1->id, 'id' => $grade4->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade4->timemodified);
     $expected2 = (object) array('userid' => (string) $eusers[3]->id, 'classid' => (string) $pmclass1->id, 'completionid' => '2', 'grade' => '74.00000', 'muid' => (string) $musers[3]->id, 'pmclassid' => (string) $pmclass1->id, 'id' => $grade5->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade5->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected1->completionid, $cmgrades);
     $this->assertEquals($expected1, $cmgrades[$expected1->completionid]);
     $this->assertArrayHasKey($expected2->completionid, $cmgrades);
     $this->assertEquals($expected2, $cmgrades[$expected2->completionid]);
     // 5. One user two classes one grade in each.
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[4]->id, $pmclass1->id);
     $expected = (object) array('userid' => (string) $eusers[4]->id, 'classid' => (string) $pmclass1->id, 'completionid' => '1', 'grade' => '75.00000', 'muid' => (string) $musers[4]->id, 'pmclassid' => (string) $pmclass1->id, 'id' => $grade6->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade6->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected->completionid, $cmgrades);
     $this->assertEquals($expected, $cmgrades[$expected->completionid]);
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[4]->id, $pmclass2->id);
     $expected = (object) array('userid' => (string) $eusers[4]->id, 'classid' => (string) $pmclass2->id, 'completionid' => '10', 'grade' => '76.00000', 'muid' => (string) $musers[4]->id, 'pmclassid' => (string) $pmclass2->id, 'id' => $grade7->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade7->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected->completionid, $cmgrades);
     $this->assertEquals($expected, $cmgrades[$expected->completionid]);
     // 6. One user two classes one grade in one two grades in the other.
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[5]->id, $pmclass1->id);
     $expected1 = (object) array('userid' => (string) $eusers[5]->id, 'classid' => (string) $pmclass1->id, 'completionid' => '1', 'grade' => '77.00000', 'muid' => (string) $musers[5]->id, 'pmclassid' => (string) $pmclass1->id, 'id' => $grade8->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade8->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected1->completionid, $cmgrades);
     $this->assertEquals($expected1, $cmgrades[$expected1->completionid]);
     $cmgrades = $sync->get_elis_coursecompletion_grades(0, $musers[5]->id, $pmclass2->id);
     $expected1 = (object) array('userid' => (string) $eusers[5]->id, 'classid' => (string) $pmclass2->id, 'completionid' => '10', 'grade' => '78.00000', 'muid' => (string) $musers[5]->id, 'pmclassid' => (string) $pmclass2->id, 'id' => $grade9->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade9->timemodified);
     $expected2 = (object) array('userid' => (string) $eusers[5]->id, 'classid' => (string) $pmclass2->id, 'completionid' => '11', 'grade' => '79.00000', 'muid' => (string) $musers[5]->id, 'pmclassid' => (string) $pmclass2->id, 'id' => $grade10->id, 'locked' => '0', 'timegraded' => '0', 'timemodified' => $grade10->timemodified);
     $this->assertNotEmpty($cmgrades);
     $this->assertArrayHasKey($expected1->completionid, $cmgrades);
     $this->assertEquals($expected1, $cmgrades[$expected1->completionid]);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $data The incoming program enrolment data.
  */
 public function test_failure(array $data)
 {
     global $DB;
     // Create test program.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'TestProgramEnrolmentCreate'));
     $this->give_permissions(array('local/elisprogram:program_enrol'));
     $response = local_datahub_elis_program_enrolment_create::program_enrolment_create($data);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $tracktoupdate The incoming track data.
  */
 public function test_failure(array $tracktoupdate)
 {
     global $DB;
     $this->give_permissions(array('local/elisprogram:track_edit'));
     // Setup program and track.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'test_program_idnumber', 'name' => 'ProgramName'));
     $track = $datagen->create_track(array('idnumber' => 'testtrack', 'name' => 'testtrackname', 'curid' => $program->id));
     $response = local_datahub_elis_track_update::track_update($tracktoupdate);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $data The incoming userset enrolment delete data.
  */
 public function test_failure(array $data)
 {
     global $DB;
     // Create test userset.
     $datagen = new elis_program_datagenerator($DB);
     $userset = $datagen->create_userset(array('name' => 'TestUsersetEnrolmentDelete'));
     $this->give_permissions(array('local/elisprogram:userset_enrol'));
     $response = local_datahub_elis_userset_enrolment_delete::userset_enrolment_delete($data);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $track The incoming track data.
  */
 public function test_failure(array $track)
 {
     global $DB;
     $this->give_permissions(array('local/elisprogram:track_create'));
     // Setup program.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'test_program_idnumber', 'name' => 'ProgramName'));
     // Setup duplicate track.
     $duptrk = new track(array('idnumber' => 'DupTrackIdnumber', 'name' => 'DupTrackName', 'curid' => $program->id));
     $duptrk->save();
     $response = local_datahub_elis_track_create::track_create($track);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $data The incoming class enrolment data.
  */
 public function test_failure(array $data)
 {
     global $DB;
     $this->give_permissions(array('local/elisprogram:class_enrol'));
     // Create test course and class.
     $datagen = new elis_program_datagenerator($DB);
     $crs = $datagen->create_course(array('idnumber' => 'TestCourse'));
     $cls = $datagen->create_pmclass(array('idnumber' => 'TestClassEnrolmentDelete', 'courseid' => $crs->id));
     $response = local_datahub_elis_class_enrolment_delete::class_enrolment_delete($data);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $data The incoming track enrolment data.
  */
 public function test_failure(array $data)
 {
     global $DB;
     // Create test program and track.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'TestProgramForTrack'));
     $track = $datagen->create_track(array('idnumber' => 'TestTrackForProgram', 'curid' => $program->id));
     $this->give_permissions(array('local/elisprogram:track_enrol'));
     $response = local_datahub_elis_track_enrolment_delete::track_enrolment_delete($data);
 }
Beispiel #13
0
 /**
  * Method to test pmclass:auto_create_class()
  * for ELIS-6854
  * @dataProvider dataprovider_pmclass_auto_create
  * @param array $pmclassdata Data to pass to pmclass contructor
  * @param array $autocreateparams Data to pass to pmclass::auto_create_class
  * @param bool $accreturn False if pmclass::auto_create_class should return false, true otherwise
  * @param int $startdate Expected new class startdate
  * @param int $enddate Expected new class enddate
  */
 public function test_pmclass_auto_create_class($pmclassdata, $autocreateparams, $accreturn, $startdate, $enddate)
 {
     global $DB;
     $datagenerator = new elis_program_datagenerator($DB);
     $course = $datagenerator->create_course();
     if (!empty($pmclassdata['courseid'])) {
         $pmclassdata['courseid'] = $course->id;
     }
     if (!empty($autocreateparams['courseid'])) {
         $autocreateparams['courseid'] = $course->id;
     }
     $pmclass = new pmclass((object) $pmclassdata);
     $realaccret = $pmclass->auto_create_class($autocreateparams);
     if ($accreturn) {
         $this->assertTrue(!empty($realaccret));
         $this->assertEquals($startdate, $pmclass->startdate);
         $this->assertEquals($enddate, $pmclass->enddate);
     } else {
         $this->assertFalse($realaccret);
     }
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $prg The incoming program data.
  */
 public function test_failure(array $prg)
 {
     global $DB;
     $this->give_permissions(array('local/elisprogram:program_create'));
     // Create test program to update.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'testprogram', 'name' => 'testprogram'));
     $response = local_datahub_elis_program_update::program_update($prg);
 }
Beispiel #15
0
 /**
  * Test get_instructors function.
  */
 public function test_get_instructors()
 {
     global $DB;
     // Fixture.
     $datagenerator = new elis_program_datagenerator($DB);
     $user = $datagenerator->create_user();
     $datagenerator->assign_instructor_to_class($user->id, 1);
     // Test.
     $instructor = new instructor();
     $instructor->classid = 1;
     $instructors = $instructor->get_instructors();
     // Verify.
     $count = 0;
     foreach ($instructors as $instructoruser) {
         $this->assertEquals($user->id, $instructoruser->id);
         $count++;
     }
     $this->assertEquals(1, $count);
 }
 /**
  * Test failure conditions.
  * @dataProvider dataprovider_failure
  * @expectedException moodle_exception
  * @param array $data The incoming class enrolment data.
  */
 public function test_failure(array $data)
 {
     global $DB;
     $this->give_permissions(array('local/elisprogram:class_enrol'));
     // Create test course and class.
     $datagen = new elis_program_datagenerator($DB);
     $crs = $datagen->create_course(array('idnumber' => 'TestCourse'));
     $cls = $datagen->create_pmclass(array('idnumber' => 'TestClassEnrolmentUpdate', 'courseid' => $crs->id));
     $userid = $DB->get_field(user::TABLE, 'id', array('username' => 'assigninguser'));
     $this->create_class_enrolment($userid, $cls->id);
     $response = local_datahub_elis_class_enrolment_update::class_enrolment_update($data);
 }