/**
  * 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);
 }
Example #3
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);
 }
Example #4
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);
 }
 /**
  * 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 $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 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);
 }
 /**
  * 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);
 }