MDL-54997 competencies: Listing evidence contexts

When listing the evidence for a user competency in a course,
the query is missing evidences for sub-contexts in the course.
This commit is contained in:
Damyon Wiese
2016-06-25 07:19:20 -07:00
parent eb36cfcbb6
commit 80d2c7cfb0
3 changed files with 84 additions and 5 deletions
+41
View File
@@ -2579,6 +2579,47 @@ class core_competency_api_testcase extends advanced_testcase {
$this->assertEquals(null, $ev4->get_actionuserid());
}
public function test_list_evidence_in_course() {
global $SITE;
$this->resetAfterTest(true);
$dg = $this->getDataGenerator();
$lpg = $dg->get_plugin_generator('core_competency');
$u1 = $dg->create_user();
$course = $dg->create_course();
$coursecontext = context_course::instance($course->id);
$this->setAdminUser();
$f = $lpg->create_framework();
$c = $lpg->create_competency(array('competencyframeworkid' => $f->get_id()));
$c2 = $lpg->create_competency(array('competencyframeworkid' => $f->get_id()));
$cc = api::add_competency_to_course($course->id, $c->get_id());
$cc2 = api::add_competency_to_course($course->id, $c2->get_id());
$pagegenerator = $this->getDataGenerator()->get_plugin_generator('mod_page');
$page = $pagegenerator->create_instance(array('course' => $course->id));
$cm = get_coursemodule_from_instance('page', $page->id);
$cmcontext = context_module::instance($cm->id);
// Add the competency to the course module.
$ccm = api::add_competency_to_course_module($cm, $c->get_id());
// Now add the evidence to the course.
$evidence1 = api::add_evidence($u1->id, $c->get_id(), $coursecontext->id, \core_competency\evidence::ACTION_LOG,
'invaliddata', 'error');
$result = api::list_evidence_in_course($u1->id, $course->id, $c->get_id());
$this->assertEquals($result[0]->get_id(), $evidence1->get_id());
// Now add the evidence to the course module.
$evidence2 = api::add_evidence($u1->id, $c->get_id(), $cmcontext->id, \core_competency\evidence::ACTION_LOG,
'invaliddata', 'error');
$result = api::list_evidence_in_course($u1->id, $course->id, $c->get_id());
$this->assertEquals($result[0]->get_id(), $evidence2->get_id());
$this->assertEquals($result[1]->get_id(), $evidence1->get_id());
}
public function test_list_course_modules_using_competency() {
global $SITE;