| Línea 18... |
Línea 18... |
| 18 |
|
18 |
|
| Línea 19... |
Línea 19... |
| 19 |
namespace core_badges\reportbuilder\datasource;
|
19 |
namespace core_badges\reportbuilder\datasource;
|
| 20 |
|
20 |
|
| 21 |
use core_badges_generator;
|
- |
|
| 22 |
use core_reportbuilder_generator;
|
21 |
use core_badges_generator;
|
| - |
|
22 |
use core_reportbuilder_generator;
|
| Línea 23... |
Línea 23... |
| 23 |
use core_reportbuilder_testcase;
|
23 |
use core_reportbuilder\local\filters\{boolean_select, date, select, tags, text};
|
| Línea 24... |
Línea 24... |
| 24 |
use core_reportbuilder\local\filters\{boolean_select, date, select, tags, text};
|
24 |
use core_reportbuilder\tests\core_reportbuilder_testcase;
|
| 25 |
|
- |
|
| 26 |
defined('MOODLE_INTERNAL') || die();
|
25 |
|
| Línea 27... |
Línea 26... |
| 27 |
|
26 |
defined('MOODLE_INTERNAL') || die();
|
| 28 |
global $CFG;
|
27 |
|
| 29 |
require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
|
28 |
global $CFG;
|
| 30 |
require_once("{$CFG->libdir}/badgeslib.php");
|
29 |
require_once("{$CFG->libdir}/badgeslib.php");
|
| 31 |
|
30 |
|
| 32 |
/**
|
31 |
/**
|
| 33 |
* Unit tests for user badges datasource
|
32 |
* Unit tests for user badges datasource
|
| 34 |
*
|
33 |
*
|
| 35 |
* @package core_badges
|
34 |
* @package core_badges
|
| Línea 36... |
Línea 35... |
| 36 |
* @covers \core_badges\reportbuilder\datasource\users
|
35 |
* @covers \core_badges\reportbuilder\datasource\users
|
| 37 |
* @copyright 2023 Paul Holden <paulh@moodle.com>
|
36 |
* @copyright 2023 Paul Holden <paulh@moodle.com>
|
| 38 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
37 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
| 39 |
*/
|
38 |
*/
|
| Línea 191... |
Línea 190... |
| 191 |
[$fullname, $badgename, $namewithlink, $criteria, $image, $language, $version, $status, $expiry, $tag, $expires,
|
190 |
[$fullname, $badgename, $namewithlink, $criteria, $image, $language, $version, $status, $expiry, $tag, $expires,
|
| 192 |
$visible, $coursename, $cohortname] = array_values($content[2]);
|
191 |
$visible, $coursename, $cohortname] = array_values($content[2]);
|
| 193 |
$this->assertEquals(fullname($user), $fullname);
|
192 |
$this->assertEquals(fullname($user), $fullname);
|
| 194 |
$this->assertEquals($badgecourse->name, $badgename);
|
193 |
$this->assertEquals($badgecourse->name, $badgename);
|
| 195 |
$this->assertEquals($expectedbadgecourselink, $namewithlink);
|
194 |
$this->assertEquals($expectedbadgecourselink, $namewithlink);
|
| 196 |
$this->assertEquals('Criteria for this badge have not been set up yet.', $criteria);
|
195 |
$this->assertStringContainsString('no-criteria-set', $criteria);
|
| 197 |
$this->assertStringContainsString('Image caption', $image);
|
196 |
$this->assertStringContainsString('Image caption', $image);
|
| 198 |
$this->assertEquals('English', $language);
|
197 |
$this->assertEquals('English', $language);
|
| 199 |
$this->assertEquals(2, $version);
|
198 |
$this->assertEquals(2, $version);
|
| 200 |
$this->assertEquals('Available (criteria locked)', $status);
|
199 |
$this->assertEquals('Available (criteria locked)', $status);
|
| 201 |
$this->assertEquals('Never', $expiry);
|
200 |
$this->assertEquals('Never: this badge does not expire.', $expiry);
|
| 202 |
$this->assertEmpty($tag);
|
201 |
$this->assertEmpty($tag);
|
| 203 |
$this->assertEmpty($expires);
|
202 |
$this->assertEmpty($expires);
|
| 204 |
$this->assertEquals('Yes', $visible);
|
203 |
$this->assertEquals('Yes', $visible);
|
| 205 |
$this->assertEquals($course->fullname, $coursename);
|
204 |
$this->assertEquals($course->fullname, $coursename);
|
| 206 |
$this->assertEquals($cohort->name, $cohortname);
|
205 |
$this->assertEquals($cohort->name, $cohortname);
|
| Línea 209... |
Línea 208... |
| 209 |
/**
|
208 |
/**
|
| 210 |
* Data provider for {@see test_datasource_filters}
|
209 |
* Data provider for {@see test_datasource_filters}
|
| 211 |
*
|
210 |
*
|
| 212 |
* @return array[]
|
211 |
* @return array[]
|
| 213 |
*/
|
212 |
*/
|
| 214 |
public function datasource_filters_provider(): array {
|
213 |
public static function datasource_filters_provider(): array {
|
| 215 |
return [
|
214 |
return [
|
| 216 |
// User.
|
215 |
// User.
|
| 217 |
'Filter user fullname' => ['user:fullname', [
|
216 |
'Filter user fullname' => ['user:fullname', [
|
| 218 |
'user:fullname_operator' => text::IS_EQUAL_TO,
|
217 |
'user:fullname_operator' => text::IS_EQUAL_TO,
|
| 219 |
'user:fullname_value' => 'Zoe Zebra',
|
218 |
'user:fullname_value' => 'Zoe Zebra',
|
| Línea 335... |
Línea 334... |
| 335 |
|
334 |
|
| 336 |
/** @var core_reportbuilder_generator $generator */
|
335 |
/** @var core_reportbuilder_generator $generator */
|
| Línea 337... |
Línea 336... |
| 337 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
336 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
| 338 |
|
337 |
|
| 339 |
// Create report containing single username column, and given filter.
|
338 |
// Create report containing single username column, and given filter.
|
| Línea 340... |
Línea 339... |
| 340 |
$report = $generator->create_report(['name' => 'My report', 'source' => users::class, 'default' => 0]);
|
339 |
$report = $generator->create_report(['name' => 'Badges', 'source' => users::class, 'default' => 0]);
|
| 341 |
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:username']);
|
340 |
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:username']);
|
| 342 |
|
341 |
|