Example #1
0
 public function test_get_entries_by_letter_with_parameters()
 {
     $this->resetAfterTest(true);
     // Generate all the things.
     $gg = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
     $c1 = $this->getDataGenerator()->create_course();
     $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
     $u1 = $this->getDataGenerator()->create_user();
     $ctx = context_module::instance($g1->cmid);
     $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
     $e1a = $gg->create_content($g1, array('approved' => 1, 'concept' => '0-day', 'userid' => $u1->id));
     $e1b = $gg->create_content($g1, array('approved' => 1, 'concept' => 'Bob', 'userid' => 2));
     $e1c = $gg->create_content($g1, array('approved' => 1, 'concept' => '1-dayb', 'userid' => $u1->id));
     $this->setUser($u1);
     // Requesting a single letter.
     $return = mod_glossary_external::get_entries_by_letter($g1->id, 'b', 0, 20, array());
     $return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
     $this->assertCount(1, $return['entries']);
     $this->assertEquals(1, $return['count']);
     $this->assertEquals($e1b->id, $return['entries'][0]['id']);
     // Requesting special letters.
     $return = mod_glossary_external::get_entries_by_letter($g1->id, 'SPECIAL', 0, 20, array());
     $return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
     $this->assertCount(2, $return['entries']);
     $this->assertEquals(2, $return['count']);
     $this->assertEquals($e1a->id, $return['entries'][0]['id']);
     $this->assertEquals($e1c->id, $return['entries'][1]['id']);
     // Requesting with limit.
     $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 1, array());
     $return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
     $this->assertCount(1, $return['entries']);
     $this->assertEquals(3, $return['count']);
     $this->assertEquals($e1a->id, $return['entries'][0]['id']);
     $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 1, 2, array());
     $return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
     $this->assertCount(2, $return['entries']);
     $this->assertEquals(3, $return['count']);
     $this->assertEquals($e1c->id, $return['entries'][0]['id']);
     $this->assertEquals($e1b->id, $return['entries'][1]['id']);
 }