MDL-59642 stats: Correct random unit test failure

The unit test was creating four events, and then relying on them being
retrieved in the order in which they were created.

I've modified the test to:
* ensure timecreated are spaced apart; and
* add an order by timecreated when fetching them.
This commit is contained in:
Andrew Nicols
2017-08-04 15:07:38 +08:00
parent 8d826b10c6
commit cd0978d66c
+17 -3
View File
@@ -337,15 +337,29 @@ class core_statslib_testcase extends advanced_testcase {
$this->assertEquals($firstoldtime, stats_get_start_from('daily'));
$time = time() - 5;
\core_tests\event\create_executed::create(array('context' => context_system::instance()))->trigger();
$DB->set_field('logstore_standard_log', 'timecreated', $time++, [
'eventname' => '\\core_tests\\event\\create_executed',
]);
\core_tests\event\read_executed::create(array('context' => context_system::instance()))->trigger();
$DB->set_field('logstore_standard_log', 'timecreated', $time++, [
'eventname' => '\\core_tests\\event\\read_executed',
]);
\core_tests\event\update_executed::create(array('context' => context_system::instance()))->trigger();
$DB->set_field('logstore_standard_log', 'timecreated', $time++, [
'eventname' => '\\core_tests\\event\\update_executed',
]);
\core_tests\event\delete_executed::create(array('context' => context_system::instance()))->trigger();
$DB->set_field('logstore_standard_log', 'timecreated', $time++, [
'eventname' => '\\core_tests\\event\\delete_executed',
]);
// Fake the origin of events.
$DB->set_field('logstore_standard_log', 'origin', 'web', array());
$logs = $DB->get_records('logstore_standard_log');
$logs = $DB->get_records('logstore_standard_log', null, 'timecreated ASC');
$this->assertCount(4, $logs);
$firstnew = reset($logs);