From ec564a7b32573fe4e32f2df389fe7d41d2a5ae1a Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Thu, 1 Aug 2019 18:14:29 +1000 Subject: [PATCH] MDL-56789 core: Added unit test for course_modules_pending_deletion --- course/tests/courselib_test.php | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/course/tests/courselib_test.php b/course/tests/courselib_test.php index 8cd7d25a87c..c3c02e3a261 100644 --- a/course/tests/courselib_test.php +++ b/course/tests/courselib_test.php @@ -5092,4 +5092,39 @@ class core_course_courselib_testcase extends advanced_testcase { $this->assertCount(3, $result); $this->assertArrayNotHasKey($courses[0]->id, $result); } + + /** + * Data provider for test_course_modules_pending_deletion. + * + * @return array An array of arrays contain test data + */ + public function provider_course_modules_pending_deletion() { + return [ + ['forum', true], + ['assign', true], + ]; + } + + /** + * Tests the function course_modules_pending_deletion. + * + * @param string $module The module we want to test with + * @param bool $expected The expected result + * @dataProvider provider_course_modules_pending_deletion + */ + public function test_course_modules_pending_deletion(string $module, bool $expected) { + $this->resetAfterTest(); + + // Ensure recyclebin is enabled. + set_config('coursebinenable', true, 'tool_recyclebin'); + + // Create course and modules. + $generator = $this->getDataGenerator(); + $course = $generator->create_course(); + + $moduleinstance = $generator->create_module($module, array('course' => $course->id)); + + course_delete_module($moduleinstance->cmid, true); // Try to delete the instance asynchronously. + $this->assertEquals($expected, course_modules_pending_deletion($course->id)); + } }