MDL-51312 core_message: added unit test for the message_deleted event

This commit is contained in:
Mark Nelson 2015-09-21 18:41:14 -07:00
parent b5e617e245
commit 6fff51d675

View file

@ -219,4 +219,62 @@ class core_message_events_testcase extends advanced_testcase {
$url = new moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid));
$this->assertEquals($url, $event->get_url());
}
/**
* Test the message deleted event.
*/
public function test_message_deleted() {
global $DB;
// Create a message.
$message = new stdClass();
$message->useridfrom = '1';
$message->useridto = '2';
$message->subject = 'Subject';
$message->message = 'Message';
$message->timeuserfromdeleted = 0;
$message->timeusertodeleted = 0;
$message->id = $DB->insert_record('message', $message);
// Trigger and capture the event.
$sink = $this->redirectEvents();
message_delete_message($message, $message->useridfrom);
$events = $sink->get_events();
$event = reset($events);
// Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_deleted', $event);
$this->assertEquals($message->useridfrom, $event->userid); // The user who deleted it.
$this->assertEquals($message->useridto, $event->relateduserid);
$this->assertEquals('message', $event->other['messagetable']);
$this->assertEquals($message->id, $event->other['messageid']);
$this->assertEquals($message->useridfrom, $event->other['useridfrom']);
$this->assertEquals($message->useridto, $event->other['useridto']);
// Create a read message.
$message = new stdClass();
$message->useridfrom = '2';
$message->useridto = '1';
$message->subject = 'Subject';
$message->message = 'Message';
$message->timeuserfromdeleted = 0;
$message->timeusertodeleted = 0;
$message->timeread = time();
$message->id = $DB->insert_record('message_read', $message);
// Trigger and capture the event.
$sink = $this->redirectEvents();
message_delete_message($message, $message->useridto);
$events = $sink->get_events();
$event = reset($events);
// Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_deleted', $event);
$this->assertEquals($message->useridto, $event->userid);
$this->assertEquals($message->useridfrom, $event->relateduserid);
$this->assertEquals('message_read', $event->other['messagetable']);
$this->assertEquals($message->id, $event->other['messageid']);
$this->assertEquals($message->useridfrom, $event->other['useridfrom']);
$this->assertEquals($message->useridto, $event->other['useridto']);
}
}