/** * 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); }
/** * 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); }
/** * 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); }