From bdba44193dd01820c46b62fea9301120f62ddfc8 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Tue, 26 Mar 2019 09:47:09 +0800 Subject: [PATCH] MDL-65178 competencies: count_competencies fix Fix sql error in course_module_competency::count_competencies() function. --- .../classes/course_module_competency.php | 4 +- .../tests/course_module_competency_test.php | 72 +++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 competency/tests/course_module_competency_test.php diff --git a/competency/classes/course_module_competency.php b/competency/classes/course_module_competency.php index 405b495f18c..026ac4492b7 100644 --- a/competency/classes/course_module_competency.php +++ b/competency/classes/course_module_competency.php @@ -192,8 +192,8 @@ class course_module_competency extends persistent { $sql = 'SELECT COUNT(comp.id) FROM {' . self::TABLE . '} coursemodulecomp JOIN {' . competency::TABLE . '} comp - ON coursecomp.competencyid = comp.id - WHERE coursecomp.cmid = ? '; + ON coursemodulecomp.competencyid = comp.id + WHERE coursemodulecomp.cmid = ? '; $params = array($cmid); $results = $DB->count_records_sql($sql, $params); diff --git a/competency/tests/course_module_competency_test.php b/competency/tests/course_module_competency_test.php new file mode 100644 index 00000000000..8d951dc0da2 --- /dev/null +++ b/competency/tests/course_module_competency_test.php @@ -0,0 +1,72 @@ +. + +/** + * Course module competency persistent class tests. + * + * @package core_competency + * @copyright 2019 Damyon Wiese + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); +global $CFG; + +use core_competency\course_module_competency; + +/** + * Course module competency persistent testcase. + * + * @package core_competency + * @copyright 2019 Damyon Wiese + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class core_competency_course_module_competency_testcase extends advanced_testcase { + + public function test_count_competencies() { + global $CFG, $DB; + + $this->resetAfterTest(true); + $dg = $this->getDataGenerator(); + $lpg = $dg->get_plugin_generator('core_competency'); + + $c1 = $dg->create_course(); + $u1 = $dg->create_user(); + $u2 = $dg->create_user(); + + $framework = $lpg->create_framework(); + $comp1 = $lpg->create_competency(array('competencyframeworkid' => $framework->get('id'))); // In C1, and C2. + $comp2 = $lpg->create_competency(array('competencyframeworkid' => $framework->get('id'))); // In C2. + $lpg->create_course_competency(array('competencyid' => $comp1->get('id'), 'courseid' => $c1->id)); + $lpg->create_course_competency(array('competencyid' => $comp2->get('id'), 'courseid' => $c1->id)); + + $assign1a = $dg->create_module('assign', ['course' => $c1]); + $assign1b = $dg->create_module('assign', ['course' => $c1]); + $cmc1a = $lpg->create_course_module_competency(['competencyid' => $comp1->get('id'), 'cmid' => $assign1a->cmid]); + $cmc1b = $lpg->create_course_module_competency(['competencyid' => $comp1->get('id'), 'cmid' => $assign1b->cmid]); + $cmc2b = $lpg->create_course_module_competency(['competencyid' => $comp2->get('id'), 'cmid' => $assign1b->cmid]); + + // Enrol the user 1 in C1. + $dg->enrol_user($u1->id, $c1->id); + + $all = course_module_competency::list_course_module_competencies($assign1a->cmid); + $this->assertEquals(course_module_competency::count_competencies($assign1a->cmid), count($all)); + + $all = course_module_competency::list_course_module_competencies($assign1b->cmid); + $this->assertEquals(course_module_competency::count_competencies($assign1b->cmid), count($all)); + } + +}