Skip to content

Commit 178d8fe

Browse files
committed
WIP added unit test for delete and issue. This PR is made for #686
1 parent a74ba7c commit 178d8fe

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

tests/event/events_test.php

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,4 +466,87 @@ public function test_deleting_an_element(): void {
466466
$this->assertEquals($templateupdatedevent->contextid, \context_system::instance()->id);
467467
$this->assertDebuggingNotCalled();
468468
}
469+
470+
/**
471+
* Tests that the issue_created event is fired correctly.
472+
*/
473+
public function test_issue_created_event(): void {
474+
global $DB;
475+
476+
$this->resetAfterTest();
477+
478+
$course = $this->getDataGenerator()->create_course();
479+
$user = $this->getDataGenerator()->create_user();
480+
$customcert = $this->getDataGenerator()->create_module('customcert', ['course' => $course->id]);
481+
$context = \context_module::instance($customcert->cmid);
482+
483+
// Simulate certificate issue.
484+
$issue = new \stdClass();
485+
$issue->userid = $user->id;
486+
$issue->customcertid = $customcert->id;
487+
$issue->timecreated = time();
488+
$issueid = $DB->insert_record('customcert_issues', $issue);
489+
490+
$sink = $this->redirectEvents();
491+
492+
// Trigger event manually.
493+
\mod_customcert\event\issue_created::create([
494+
'objectid' => $issueid,
495+
'context' => $context,
496+
'relateduserid' => $user->id,
497+
'userid' => $user->id,
498+
])->trigger();
499+
500+
$events = $sink->get_events();
501+
$this->assertCount(1, $events);
502+
503+
$event = reset($events);
504+
$this->assertInstanceOf(\mod_customcert\event\issue_created::class, $event);
505+
$this->assertEquals($issueid, $event->objectid);
506+
$this->assertEquals($context->id, $event->contextid);
507+
$this->assertDebuggingNotCalled();
508+
}
509+
510+
/**
511+
* Tests that the issue_deleted event is fired correctly.
512+
*/
513+
public function test_issue_deleted_event(): void {
514+
global $DB;
515+
516+
$this->resetAfterTest();
517+
518+
$course = $this->getDataGenerator()->create_course();
519+
$user = $this->getDataGenerator()->create_user();
520+
$customcert = $this->getDataGenerator()->create_module('customcert', ['course' => $course->id]);
521+
$context = \context_module::instance($customcert->cmid);
522+
523+
// Create an issue.
524+
$issue = new \stdClass();
525+
$issue->userid = $user->id;
526+
$issue->customcertid = $customcert->id;
527+
$issue->timecreated = time();
528+
$issueid = $DB->insert_record('customcert_issues', $issue);
529+
530+
$sink = $this->redirectEvents();
531+
532+
// Simulate deleting the issue.
533+
$DB->delete_records('customcert_issues', ['id' => $issueid]);
534+
535+
// Trigger event manually.
536+
\mod_customcert\event\issue_deleted::create([
537+
'objectid' => $issueid,
538+
'context' => $context,
539+
'relateduserid' => $user->id,
540+
'userid' => $user->id,
541+
])->trigger();
542+
543+
$events = $sink->get_events();
544+
$this->assertCount(1, $events);
545+
546+
$event = reset($events);
547+
$this->assertInstanceOf(\mod_customcert\event\issue_deleted::class, $event);
548+
$this->assertEquals($issueid, $event->objectid);
549+
$this->assertEquals($context->id, $event->contextid);
550+
$this->assertDebuggingNotCalled();
551+
}
469552
}

0 commit comments

Comments
 (0)