Example #1
0
 /**
  * Test get_glossaries_by_courses
  */
 public function test_get_glossaries_by_courses()
 {
     $this->resetAfterTest(true);
     // As admin.
     $this->setAdminUser();
     $c1 = self::getDataGenerator()->create_course();
     $c2 = self::getDataGenerator()->create_course();
     $g1 = self::getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'name' => 'First Glossary'));
     $g2 = self::getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'name' => 'Second Glossary'));
     $g3 = self::getDataGenerator()->create_module('glossary', array('course' => $c2->id, 'name' => 'Third Glossary'));
     $s1 = $this->getDataGenerator()->create_user();
     self::getDataGenerator()->enrol_user($s1->id, $c1->id);
     // Check results where student is enrolled.
     $this->setUser($s1);
     $glossaries = mod_glossary_external::get_glossaries_by_courses(array());
     $glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries);
     $this->assertCount(2, $glossaries['glossaries']);
     $this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']);
     $this->assertEquals('Second Glossary', $glossaries['glossaries'][1]['name']);
     // Check results with specific course IDs.
     $glossaries = mod_glossary_external::get_glossaries_by_courses(array($c1->id, $c2->id));
     $glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries);
     $this->assertCount(2, $glossaries['glossaries']);
     $this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']);
     $this->assertEquals('Second Glossary', $glossaries['glossaries'][1]['name']);
     $this->assertEquals('course', $glossaries['warnings'][0]['item']);
     $this->assertEquals($c2->id, $glossaries['warnings'][0]['itemid']);
     $this->assertEquals('1', $glossaries['warnings'][0]['warningcode']);
     // Now as admin.
     $this->setAdminUser();
     $glossaries = mod_glossary_external::get_glossaries_by_courses(array($c2->id));
     $glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries);
     $this->assertCount(1, $glossaries['glossaries']);
     $this->assertEquals('Third Glossary', $glossaries['glossaries'][0]['name']);
 }