From c5e89aa117c7f64dbd50d16775076ec886e1c98f Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Tue, 1 Mar 2016 11:36:08 +0800 Subject: [PATCH] MDL-53313 tool_lp: Add data generators for course module competencies --- admin/tool/lp/tests/generator/lib.php | 23 +++++++++++++++++++++++ admin/tool/lp/tests/generator_test.php | 22 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/admin/tool/lp/tests/generator/lib.php b/admin/tool/lp/tests/generator/lib.php index 47df21c50bb..3d0f0064bee 100644 --- a/admin/tool/lp/tests/generator/lib.php +++ b/admin/tool/lp/tests/generator/lib.php @@ -26,6 +26,7 @@ use tool_lp\competency; use tool_lp\competency_framework; use tool_lp\course_competency; +use tool_lp\course_module_competency; use tool_lp\external; use tool_lp\plan; use tool_lp\related_competency; @@ -442,6 +443,28 @@ class tool_lp_generator extends component_generator_base { return $cc; } + /** + * Create a new course module competency. + * + * @param array|stdClass $record + * @return course_module_competency + */ + public function create_course_module_competency($record = null) { + $record = (object) $record; + + if (!isset($record->cmid)) { + throw new coding_exception('The cmid value is required.'); + } + if (!isset($record->competencyid)) { + throw new coding_exception('The competencyid value is required.'); + } + + $cc = new course_module_competency(0, $record); + $cc->create(); + + return $cc; + } + /** * Create a new user_evidence. * diff --git a/admin/tool/lp/tests/generator_test.php b/admin/tool/lp/tests/generator_test.php index f2fda3cf6b4..e4188f930f6 100644 --- a/admin/tool/lp/tests/generator_test.php +++ b/admin/tool/lp/tests/generator_test.php @@ -26,6 +26,7 @@ use tool_lp\competency; use tool_lp\competency_framework; use tool_lp\course_competency; +use tool_lp\course_module_competency; use tool_lp\plan; use tool_lp\related_competency; use tool_lp\template; @@ -234,5 +235,26 @@ class tool_lp_generator_testcase extends advanced_testcase { $this->assertInstanceOf('\tool_lp\course_competency', $rc); } + public function test_create_course_module_competency() { + $this->resetAfterTest(true); + + $lpg = $this->getDataGenerator()->get_plugin_generator('tool_lp'); + $course1 = $this->getDataGenerator()->create_course(); + $cm1 = $this->getDataGenerator()->create_module('forum', array('course' => $course1->id)); + $cm2 = $this->getDataGenerator()->create_module('forum', array('course' => $course1->id)); + $framework = $lpg->create_framework(); + $c1 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); + $c2 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); + $c3 = $lpg->create_competency(array('competencyframeworkid' => $framework->get_id())); + $this->assertEquals(0, course_module_competency::count_records()); + $rc = $lpg->create_course_module_competency(array('competencyid' => $c1->get_id(), 'cmid' => $cm1->cmid)); + $rc = $lpg->create_course_module_competency(array('competencyid' => $c2->get_id(), 'cmid' => $cm1->cmid)); + $this->assertEquals(2, course_module_competency::count_records(array('cmid' => $cm1->cmid))); + $this->assertEquals(0, course_module_competency::count_records(array('cmid' => $cm2->cmid))); + $rc = $lpg->create_course_module_competency(array('competencyid' => $c3->get_id(), 'cmid' => $cm2->cmid)); + $this->assertEquals(1, course_module_competency::count_records(array('cmid' => $cm2->cmid))); + $this->assertInstanceOf('\tool_lp\course_module_competency', $rc); + } + }