/** * IMS docs cannot have an empty start-date if it has a non-zero end-date * @expectedException Exception * @expectedExceptionMessage UAIMS: Course Creation without valid start or end date */ public function test_process_imsdoc_cant_lack_startdate() { global $DB, $CFG; $this->resetAfterTest(true); $xmldoc2 = <<<DOC2 <?xml version="1.0" encoding="utf-8"?> <enterprise xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <group recstatus="1"> <sourcedid> <source>AIS</source> <id>IDNUMBER</id> </sourcedid> <grouptype> <typevalue>Course</typevalue> </grouptype> <description> <short>IDNUMBER</short> <long>Long description2</long> </description> <org /> <timeframe> <end>2430816400</end> </timeframe> <enrollcontrol /> <relationship> <sourcedid> <source>AIS</source> <id>UOFAB-TEST</id> </sourcedid> </relationship> <extension> <settings> <setting>visible</setting> <value>0</value> </settings> <settings> <setting>format</setting> <value>topics</value> </settings> </extension> </group></enterprise> DOC2; $enrol = new enrol_uaims_plugin(); $oldsetting = $enrol->get_config('enableqrvisibilitytoggle'); // Enable updates from UAIMS documents. $enrol->set_config('enableqrvisibilitytoggle', true); $category = new stdClass(); $category->name = "test"; $category->description = "UOFAB-TEST"; $category->idnumber = "UOFAB-TEST"; $category->timemodified = time(); $DB->insert_record('course_categories', $category); // Process missing start date. $enrol->process_imsdoc($xmldoc2); if ($oldsetting) { $enrol->set_config('enableqrvisibilitytoggle', $oldsetting); } }
public function test_enrol_uaims_cron() { global $DB, $CFG; $this->resetAfterTest(true); // Run the cron on whatever data is in the database. // This checks that cron won't crash if the table is missing. $eup = new enrol_uaims_plugin(); $eup->set_config('enableautocourseopenclose', 1); // Output buffering is disabled in phpunit runs. ini_set('output_buffering', 'On'); ob_start(); $eup->cron(); ob_end_clean(); ini_set('output_buffering', 'Off'); $dbtables = $DB->get_tables(false); $this->assertEquals(true, array_key_exists('eclass_course_management', $dbtables)); $ecmt = new eclass_course_manager_test(); $eergisteren = time() - 2 * 86400; $gisteren = time() - 86400; $morgen = time() + 86400; $overmorgen = time() + 2 * 86400; // Course names are appended with Start, Now, and End, in chronological order. $coursense = $ecmt->create_course_vis_start_end(0, $morgen, $overmorgen); $coursesne = $ecmt->create_course_vis_start_end(0, $gisteren, $morgen); $coursesen = $ecmt->create_course_vis_start_end(0, $eergisteren, $gisteren); $coursenes = $ecmt->create_course_vis_start_end(0, $overmorgen, $morgen); $courseens = $ecmt->create_course_vis_start_end(1, $morgen, $gisteren); $courseesn = $ecmt->create_course_vis_start_end(0, $gisteren, $eergisteren); $courseopendone = $ecmt->create_course_vis_start_end(0, $gisteren, $morgen, time() - 86000); $courseclosedone = $ecmt->create_course_vis_start_end(1, $eergisteren, $gisteren, null, time() - 86000); // Disable auto open/close. Visibility and times should stay unchanged. $eup->set_config('enableautocourseopenclose', 0); // Output buffering is disabled in phpunit runs. ini_set('output_buffering', 'On'); ob_start(); $eup->cron(); ob_end_clean(); ini_set('output_buffering', 'Off'); $ecmt->check_courseid_vis_opened_closed($coursense->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($coursesne->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($coursesen->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($coursenes->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($courseens->id, 1, true, true); $ecmt->check_courseid_vis_opened_closed($courseesn->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($courseopendone->id, 0, false, true); $ecmt->check_courseid_vis_opened_closed($courseclosedone->id, 1, true, false); // Enable auto open/close. Visibility and times should change selectively. $eup->set_config('enableautocourseopenclose', 1); // Output buffering is disabled in phpunit runs. ini_set('output_buffering', 'On'); ob_start(); $eup->cron(); ob_end_clean(); ini_set('output_buffering', 'Off'); $ecmt->check_courseid_vis_opened_closed($coursense->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($coursesne->id, 1, false, true); $ecmt->check_courseid_vis_opened_closed($coursesen->id, 0, false, false); $ecmt->check_courseid_vis_opened_closed($coursenes->id, 0, true, true); $ecmt->check_courseid_vis_opened_closed($courseens->id, 0, true, false); $ecmt->check_courseid_vis_opened_closed($courseesn->id, 0, false, false); $ecmt->check_courseid_vis_opened_closed($courseopendone->id, 0, false, true); $ecmt->check_courseid_vis_opened_closed($courseclosedone->id, 1, false, false); }