/** * Test count_rule_subscriptions method. */ public function test_count_rule_subscriptions() { $this->setAdminUser(); $this->resetAfterTest(true); // Create users. $user1 = $this->getDataGenerator()->create_user(); $user2 = $this->getDataGenerator()->create_user(); // Create few rules. $monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor'); $rule1 = $monitorgenerator->create_rule(); $rule2 = $monitorgenerator->create_rule(); $subs = \tool_monitor\subscription_manager::count_rule_subscriptions($rule1->id); // No subscriptions at this point. $this->assertEquals(0, $subs); // Subscribe user 1 to rule 1. $record = new stdClass(); $record->ruleid = $rule1->id; $record->userid = $user1->id; $monitorgenerator->create_subscription($record); // Subscribe user 2 to rule 1. $record->userid = $user2->id; $monitorgenerator->create_subscription($record); // Subscribe user 2 to rule 2. $record->ruleid = $rule2->id; $monitorgenerator->create_subscription($record); // Should have 2 subscriptions for rule 1 and 1 subscription for rule 2 $subs1 = \tool_monitor\subscription_manager::count_rule_subscriptions($rule1->id); $subs2 = \tool_monitor\subscription_manager::count_rule_subscriptions($rule2->id); $this->assertEquals(2, $subs1); $this->assertEquals(1, $subs2); }
$eventlist = array_merge(array('' => get_string('choosedots')), $eventlist); $pluginlist = array_merge(array('' => get_string('choosedots')), $pluginlist); // Set up the yui module. $PAGE->requires->yui_module('moodle-tool_monitor-dropdown', 'Y.M.tool_monitor.DropDown.init', array(array('eventlist' => $eventlist))); // Site level report. if (empty($courseid)) { admin_externalpage_setup('toolmonitorrules', '', null, '', array('pagelayout' => 'report')); } else { // Course level report. $PAGE->navigation->override_active_url($manageurl); } // Mform setup. if (!empty($ruleid)) { $rule = \tool_monitor\rule_manager::get_rule($ruleid)->get_mform_set_data(); $rule->minutes = $rule->timewindow / MINSECS; $subscriptioncount = \tool_monitor\subscription_manager::count_rule_subscriptions($ruleid); } else { $rule = new stdClass(); $subscriptioncount = 0; } $mform = new tool_monitor\rule_form(null, array('eventlist' => $eventlist, 'pluginlist' => $pluginlist, 'rule' => $rule, 'courseid' => $courseid, 'subscriptioncount' => $subscriptioncount)); if ($mform->is_cancelled()) { redirect(new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => $courseid))); exit; } if ($mformdata = $mform->get_data()) { $rule = \tool_monitor\rule_manager::clean_ruledata_form($mformdata); if (empty($rule->id)) { \tool_monitor\rule_manager::add_rule($rule); } else { \tool_monitor\rule_manager::update_rule($rule);