Skip to content

Commit

Permalink
fixup! MDL-70854 core: Add javascript & external service for stored p…
Browse files Browse the repository at this point in the history
…rogress bars.
  • Loading branch information
marxjohnson committed May 10, 2024
1 parent 593fa7b commit 4da2ed8
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions lib/tests/external/test_poll_stored_progress.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core\external;

/**
* Unit tests for poll_stored_progress
*
* @package core
* @copyright 2024 onwards Catalyst IT EU {@link https://catalyst-eu.net}
* @author Mark Johnson <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers core\external\poll_stored_progress
*/
class test_poll_stored_progress extends \advanced_testcase {
/**
* Throw an exception if the wrong data type is passed for an ID.
*/
public function test_execute_invalid_id(): void {
$debuginfo = 'Invalid external api parameter: the value is "foo", the server was expecting "int" type';
$pollstoredprogress = new poll_stored_progress();
$this->expectExceptionObject(new \invalid_parameter_exception($debuginfo));
$pollstoredprogress->execute(['foo']);
}

/**
* Passing a list of IDs returns a corresponding list of records.
*/
public function test_execute(): void {
$this->resetAfterTest();
$generator = $this->getDataGenerator();
$progress1 = $generator->create_stored_progress();
$progress2 = $generator->create_stored_progress();
$falseid = $progress2->id + 1;

$ids = [
$progress1->id,
$progress2->id,
$falseid,
];

$pollstoredprogress = new poll_stored_progress();
$result = $pollstoredprogress->execute($ids);

$this->assertEquals($progress1->id, $result[$progress1->id]['id']);
$this->assertEquals($progress1->idnumber, $result[$progress1->id]['uniqueid']);
$this->assertEquals($progress2->id, $result[$progress2->id]['id']);
$this->assertEquals($progress2->idnumber, $result[$progress2->id]['uniqueid']);
$this->assertEquals($falseid, $result[$falseid]['id']);
$this->assertEmpty($result[$falseid]['uniqueid']); // Empty when no matching record is found.
}
}

0 comments on commit 4da2ed8

Please sign in to comment.