/**
  * Test observer for course delete event.
  */
 public function test_course_deleted()
 {
     global $DB;
     $this->setAdminUser();
     $this->resetAfterTest(true);
     $user = $this->getDataGenerator()->create_user();
     $course1 = $this->getDataGenerator()->create_course();
     $course2 = $this->getDataGenerator()->create_course();
     $monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor');
     $rule = new stdClass();
     $rule->userid = $user->id;
     $rule->courseid = $course1->id;
     $rule->plugin = 'test';
     $sub = new stdClass();
     $sub->courseid = $course1->id;
     $sub->userid = $user->id;
     // Add 10 rules for this course with subscriptions.
     for ($i = 0; $i < 10; $i++) {
         $createdrule = $monitorgenerator->create_rule($rule);
         $sub->ruleid = $createdrule->id;
         $monitorgenerator->create_subscription($sub);
     }
     // Add 10 random rules for course 2.
     $rule->courseid = $course2->id;
     for ($i = 0; $i < 10; $i++) {
         $createdrule = $monitorgenerator->create_rule($rule);
         $sub->courseid = $rule->courseid;
         $sub->ruleid = $createdrule->id;
         $monitorgenerator->create_subscription($sub);
     }
     // Verify data before course delete.
     $totalrules = \tool_monitor\rule_manager::get_rules_by_plugin('test');
     $this->assertCount(20, $totalrules);
     $courserules = \tool_monitor\rule_manager::get_rules_by_courseid($course1->id);
     $this->assertCount(10, $courserules);
     $totalsubs = $DB->get_records('tool_monitor_subscriptions');
     $this->assertCount(20, $totalsubs);
     $coursesubs = \tool_monitor\subscription_manager::get_user_subscriptions_for_course($course1->id, 0, 0, $user->id);
     $this->assertCount(10, $coursesubs);
     // Let us delete the course now.
     delete_course($course1->id, false);
     // Verify data after course delete.
     $totalrules = \tool_monitor\rule_manager::get_rules_by_plugin('test');
     $this->assertCount(10, $totalrules);
     $courserules = \tool_monitor\rule_manager::get_rules_by_courseid($course1->id);
     $this->assertCount(0, $courserules);
     // Making sure all rules are deleted.
     $totalsubs = $DB->get_records('tool_monitor_subscriptions');
     $this->assertCount(10, $totalsubs);
     $coursesubs = \tool_monitor\subscription_manager::get_user_subscriptions_for_course($course1->id, 0, 0, $user->id);
     $this->assertCount(0, $coursesubs);
     // Making sure all subscriptions are deleted.
 }
Example #2
0
 /**
  * Query the reader. Store results in the object for use by build_table.
  *
  * @param int $pagesize size of page for paginated displayed table.
  * @param bool $useinitialsbar do you want to use the initials bar.
  */
 public function query_db($pagesize, $useinitialsbar = true)
 {
     $total = \tool_monitor\rule_manager::count_rules_by_courseid($this->courseid);
     $this->pagesize($pagesize, $total);
     $rules = \tool_monitor\rule_manager::get_rules_by_courseid($this->courseid, $this->get_page_start(), $this->get_page_size());
     $this->rawdata = $rules;
     // Set initial bars.
     if ($useinitialsbar) {
         $this->initialbars($total > $pagesize);
     }
 }
Example #3
0
 /**
  * Test get_rules_by_courseid method.
  */
 public function test_get_rules_by_courseid()
 {
     $this->setAdminUser();
     $this->resetAfterTest(true);
     $monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor');
     $course1 = $this->getDataGenerator()->create_course();
     $course2 = $this->getDataGenerator()->create_course();
     $record = new stdClass();
     $record->courseid = $course1->id;
     $record2 = new stdClass();
     $record2->courseid = $course2->id;
     $ruleids = array();
     for ($i = 0; $i < 10; $i++) {
         $rule = $monitorgenerator->create_rule($record);
         $ruleids[] = $rule->id;
         $rule = $monitorgenerator->create_rule();
         // Create some site level rules.
         $ruleids[] = $rule->id;
         $rule = $monitorgenerator->create_rule($record2);
         // Create rules in a different course.
     }
     $ruledata = \tool_monitor\rule_manager::get_rules_by_courseid($course1->id);
     $this->assertEmpty(array_merge(array_diff(array_keys($ruledata), $ruleids), array_diff($ruleids, array_keys($ruledata))));
     $this->assertCount(20, $ruledata);
 }