From 8e70179f4d7f23900e228fe9e02ed43dee87412e Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Fri, 10 May 2019 11:40:52 +0800 Subject: [PATCH] MDL-63959 feedback: Adjust unit test for perf --- mod/feedback/tests/completion_test.php | 53 ++++++++++---------------- 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/mod/feedback/tests/completion_test.php b/mod/feedback/tests/completion_test.php index c75c2cfccbf..eef05dd874c 100644 --- a/mod/feedback/tests/completion_test.php +++ b/mod/feedback/tests/completion_test.php @@ -31,28 +31,6 @@ require_once($CFG->dirroot . '/mod/feedback/classes/completion.php'); * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class mod_feedback_completion_testcase extends advanced_testcase { - - /** @var stdClass Course of this testcase. */ - private $course; - /** @var stdClass Feedback instance of this testcase. */ - private $feedback; - /** @var stdClass Course module of the feedback instance. */ - private $cm; - - /** - * Set up for every test - */ - public function setUp() { - $this->resetAfterTest(); - $this->setAdminUser(); - - // Setup test data. - $this->course = $this->getDataGenerator()->create_course(); - $this->feedback = $this->getDataGenerator()->create_module('feedback', - array('course' => $this->course->id)); - $this->cm = get_coursemodule_from_instance('feedback', $this->feedback->id); - } - /** * Returns the number of pages with visible elements for the current state of the feedback completion. * @param mod_feedback_completion $completion @@ -74,26 +52,35 @@ class mod_feedback_completion_testcase extends advanced_testcase { * @throws coding_exception */ public function test_get_pages() { + $this->resetAfterTest(); + $this->setAdminUser(); + + // Setup test data. + $course = $this->getDataGenerator()->create_course(); + $feedback = $this->getDataGenerator()->create_module('feedback', + array('course' => $course->id)); + $cm = get_coursemodule_from_instance('feedback', $feedback->id); + $feedbackgenerator = $this->getDataGenerator()->get_plugin_generator('mod_feedback'); $itemscreated = []; // Create at least one page. - $itemscreated[] = $feedbackgenerator->create_item_multichoice($this->feedback, + $itemscreated[] = $feedbackgenerator->create_item_multichoice($feedback, $record = ['values' => "y\nn"]); - $itemscreated[] = $feedbackgenerator->create_item_pagebreak($this->feedback); - $itemscreated[] = $feedbackgenerator->create_item_multichoice($this->feedback, + $itemscreated[] = $feedbackgenerator->create_item_pagebreak($feedback); + $itemscreated[] = $feedbackgenerator->create_item_multichoice($feedback, $record = ['values' => "y\nn", 'dependitem' => $itemscreated[0]->id, 'dependvalue' => 'n']); - $itemscreated[] = $feedbackgenerator->create_item_pagebreak($this->feedback); - $itemscreated[] = $feedbackgenerator->create_item_multichoice($this->feedback, + $itemscreated[] = $feedbackgenerator->create_item_pagebreak($feedback); + $itemscreated[] = $feedbackgenerator->create_item_multichoice($feedback, $record = ['values' => "y\nn", 'dependitem' => $itemscreated[0]->id, 'dependvalue' => 'y']); - $itemscreated[] = $feedbackgenerator->create_item_pagebreak($this->feedback); - $itemscreated[] = $feedbackgenerator->create_item_multichoice($this->feedback, + $itemscreated[] = $feedbackgenerator->create_item_pagebreak($feedback); + $itemscreated[] = $feedbackgenerator->create_item_multichoice($feedback, $record = ['values' => "y\nn", 'dependitem' => $itemscreated[2]->id, 'dependvalue' => 'y']); // Test hiding item since transitive dependency is not met. // Answering the first multichoice with 'y', should hide the second and therefor also the fourth. - $user1 = $this->getDataGenerator()->create_and_enrol($this->course); - $completion = new mod_feedback_completion($this->feedback, $this->cm, $this->course, + $user1 = $this->getDataGenerator()->create_and_enrol($course); + $completion = new mod_feedback_completion($feedback, $cm, $course, false, null, $user1->id); // Initially, all pages should be visible. @@ -115,8 +102,8 @@ class mod_feedback_completion_testcase extends advanced_testcase { // Test showing item since transitive dependency is met. // Answering the first multichoice with 'n' should hide the third multichoice. - $user2 = $this->getDataGenerator()->create_and_enrol($this->course); - $completion2 = new mod_feedback_completion($this->feedback, $this->cm, $this->course, + $user2 = $this->getDataGenerator()->create_and_enrol($course); + $completion2 = new mod_feedback_completion($feedback, $cm, $course, false, null, $user2->id); // Initially, all pages should be visible.