From 6fff51d6753e61dd7aa6ef1c3b10afe745caae4e Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 21 Sep 2015 18:41:14 -0700 Subject: [PATCH] MDL-51312 core_message: added unit test for the message_deleted event --- message/tests/events_test.php | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/message/tests/events_test.php b/message/tests/events_test.php index 0a8699e65b9..cd92c44d285 100644 --- a/message/tests/events_test.php +++ b/message/tests/events_test.php @@ -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']); + } }