MDL-55158 mod_data: Add calendar events for database activities

This commit is contained in:
Stephen Bourget
2016-07-18 18:35:37 -04:00
parent 5a1728df39
commit 87d6e85a9a
4 changed files with 182 additions and 2 deletions
+43
View File
@@ -623,4 +623,47 @@ class mod_data_lib_testcase extends advanced_testcase {
$this->assertTrue(mod_data_rating_can_see_item_ratings($params1));
}
/**
* Tests for mod_data_refresh_events.
*/
public function test_data_refresh_events() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
$timeopen = time();
$timeclose = time() + 86400;
$course = $this->getDataGenerator()->create_course();
$generator = $this->getDataGenerator()->get_plugin_generator('mod_data');
$params['course'] = $course->id;
$params['timeavailablefrom'] = $timeopen;
$params['timeavailableto'] = $timeclose;
$data = $generator->create_instance($params);
// Normal case, with existing course.
$this->assertTrue(data_refresh_events($course->id));
$eventparams = array('modulename' => 'data', 'instance' => $data->id, 'eventtype' => 'open');
$openevent = $DB->get_record('event', $eventparams, '*', MUST_EXIST);
$this->assertEquals($openevent->timestart, $timeopen);
$eventparams = array('modulename' => 'data', 'instance' => $data->id, 'eventtype' => 'close');
$closeevent = $DB->get_record('event', $eventparams, '*', MUST_EXIST);
$this->assertEquals($closeevent->timestart, $timeclose);
// In case the course ID is passed as a numeric string.
$this->assertTrue(data_refresh_events('' . $course->id));
// Course ID not provided.
$this->assertTrue(data_refresh_events());
$eventparams = array('modulename' => 'data');
$events = $DB->get_records('event', $eventparams);
foreach ($events as $event) {
if ($event->modulename === 'data' && $event->instance === $data->id && $event->eventtype === 'open') {
$this->assertEquals($event->timestart, $timeopen);
}
if ($event->modulename === 'data' && $event->instance === $data->id && $event->eventtype === 'close') {
$this->assertEquals($event->timestart, $timeclose);
}
}
}
}