diff --git a/course/tests/externallib_test.php b/course/tests/externallib_test.php index 08f8b4ac91e..984b9ed3588 100644 --- a/course/tests/externallib_test.php +++ b/course/tests/externallib_test.php @@ -165,20 +165,28 @@ class core_course_external_testcase extends externallib_advanced_testcase { global $DB; $this->resetAfterTest(true); + + $generatedcats = array(); $category1data['idnumber'] = 'idnumbercat1'; $category1data['name'] = 'Category 1 for PHPunit test'; $category1data['description'] = 'Category 1 description'; $category1data['descriptionformat'] = FORMAT_MOODLE; $category1 = self::getDataGenerator()->create_category($category1data); + $generatedcats[$category1->id] = $category1; $category2 = self::getDataGenerator()->create_category( array('parent' => $category1->id)); + $generatedcats[$category2->id] = $category2; $category6 = self::getDataGenerator()->create_category( array('parent' => $category1->id, 'visible' => 0)); + $generatedcats[$category6->id] = $category6; $category3 = self::getDataGenerator()->create_category(); + $generatedcats[$category3->id] = $category3; $category4 = self::getDataGenerator()->create_category( array('parent' => $category3->id)); + $generatedcats[$category4->id] = $category4; $category5 = self::getDataGenerator()->create_category( array('parent' => $category4->id)); + $generatedcats[$category5->id] = $category5; // Set the required capabilities by the external function. $context = context_system::instance(); @@ -193,11 +201,13 @@ class core_course_external_testcase extends externallib_advanced_testcase { $this->assertEquals(2, count($categories)); // Check the return values - $this->assertEquals($categories[0]['id'], $category1->id); - $this->assertEquals($categories[0]['idnumber'], $category1->idnumber); - $this->assertEquals($categories[0]['name'], $category1->name); - $this->assertEquals($categories[0]['description'], $category1->description); - $this->assertEquals($categories[0]['descriptionformat'], FORMAT_HTML); + foreach ($categories as $category) { + $generatedcat = $generatedcats[$category['id']]; + $this->assertEquals($category['idnumber'], $generatedcat->idnumber); + $this->assertEquals($category['name'], $generatedcat->name); + $this->assertEquals($category['description'], $generatedcat->description); + $this->assertEquals($category['descriptionformat'], FORMAT_HTML); + } // Check different params. $categories = core_course_external::get_categories(array( @@ -440,13 +450,17 @@ class core_course_external_testcase extends externallib_advanced_testcase { $this->resetAfterTest(true); + $generatedcourses = array(); $coursedata['idnumber'] = 'idnumbercourse1'; $coursedata['fullname'] = 'Course 1 for PHPunit test'; $coursedata['summary'] = 'Course 1 description'; $coursedata['summaryformat'] = FORMAT_MOODLE; $course1 = self::getDataGenerator()->create_course($coursedata); + $generatedcourses[$course1->id] = $course1; $course2 = self::getDataGenerator()->create_course(); + $generatedcourses[$course2->id] = $course2; $course3 = self::getDataGenerator()->create_course(); + $generatedcourses[$course3->id] = $course3; // Set the required capabilities by the external function. $context = context_system::instance(); @@ -464,33 +478,33 @@ class core_course_external_testcase extends externallib_advanced_testcase { // Check we retrieve the good total number of categories. $this->assertEquals(2, count($courses)); - // Check the return values for course 1 - $dbcourse = $DB->get_record('course', array('id' => $course1->id)); - $this->assertEquals($courses[0]['id'], $dbcourse->id); - $this->assertEquals($courses[0]['idnumber'], $coursedata['idnumber']); - $this->assertEquals($courses[0]['fullname'], $coursedata['fullname']); - $this->assertEquals($courses[0]['summary'], $coursedata['summary']); - $this->assertEquals($courses[0]['summaryformat'], FORMAT_HTML); - $this->assertEquals($courses[0]['shortname'], $dbcourse->shortname); - $this->assertEquals($courses[0]['categoryid'], $dbcourse->category); - $this->assertEquals($courses[0]['format'], $dbcourse->format); - $this->assertEquals($courses[0]['showgrades'], $dbcourse->showgrades); - $this->assertEquals($courses[0]['newsitems'], $dbcourse->newsitems); - $this->assertEquals($courses[0]['startdate'], $dbcourse->startdate); - $this->assertEquals($courses[0]['numsections'], $dbcourse->numsections); - $this->assertEquals($courses[0]['maxbytes'], $dbcourse->maxbytes); - $this->assertEquals($courses[0]['showreports'], $dbcourse->showreports); - $this->assertEquals($courses[0]['visible'], $dbcourse->visible); - $this->assertEquals($courses[0]['hiddensections'], $dbcourse->hiddensections); - $this->assertEquals($courses[0]['groupmode'], $dbcourse->groupmode); - $this->assertEquals($courses[0]['groupmodeforce'], $dbcourse->groupmodeforce); - $this->assertEquals($courses[0]['defaultgroupingid'], $dbcourse->defaultgroupingid); - $this->assertEquals($courses[0]['completionnotify'], $dbcourse->completionnotify); - $this->assertEquals($courses[0]['lang'], $dbcourse->lang); - $this->assertEquals($courses[0]['forcetheme'], $dbcourse->theme); - $this->assertEquals($courses[0]['completionstartonenrol'], $dbcourse->completionstartonenrol); - $this->assertEquals($courses[0]['enablecompletion'], $dbcourse->enablecompletion); - $this->assertEquals($courses[0]['completionstartonenrol'], $dbcourse->completionstartonenrol); + foreach ($courses as $course) { + $dbcourse = $generatedcourses[$course['id']]; + $this->assertEquals($course['idnumber'], $dbcourse->idnumber); + $this->assertEquals($course['fullname'], $dbcourse->fullname); + $this->assertEquals($course['summary'], $dbcourse->summary); + $this->assertEquals($course['summaryformat'], FORMAT_HTML); + $this->assertEquals($course['shortname'], $dbcourse->shortname); + $this->assertEquals($course['categoryid'], $dbcourse->category); + $this->assertEquals($course['format'], $dbcourse->format); + $this->assertEquals($course['showgrades'], $dbcourse->showgrades); + $this->assertEquals($course['newsitems'], $dbcourse->newsitems); + $this->assertEquals($course['startdate'], $dbcourse->startdate); + $this->assertEquals($course['numsections'], $dbcourse->numsections); + $this->assertEquals($course['maxbytes'], $dbcourse->maxbytes); + $this->assertEquals($course['showreports'], $dbcourse->showreports); + $this->assertEquals($course['visible'], $dbcourse->visible); + $this->assertEquals($course['hiddensections'], $dbcourse->hiddensections); + $this->assertEquals($course['groupmode'], $dbcourse->groupmode); + $this->assertEquals($course['groupmodeforce'], $dbcourse->groupmodeforce); + $this->assertEquals($course['defaultgroupingid'], $dbcourse->defaultgroupingid); + $this->assertEquals($course['completionnotify'], $dbcourse->completionnotify); + $this->assertEquals($course['lang'], $dbcourse->lang); + $this->assertEquals($course['forcetheme'], $dbcourse->theme); + $this->assertEquals($course['completionstartonenrol'], $dbcourse->completionstartonenrol); + $this->assertEquals($course['enablecompletion'], $dbcourse->enablecompletion); + $this->assertEquals($course['completionstartonenrol'], $dbcourse->completionstartonenrol); + } // Get all courses in the DB $courses = core_course_external::get_courses(array());