| Línea 16... |
Línea 16... |
| 16 |
|
16 |
|
| Línea 17... |
Línea 17... |
| 17 |
declare(strict_types=1);
|
17 |
declare(strict_types=1);
|
| Línea -... |
Línea 18... |
| - |
|
18 |
|
| 18 |
|
19 |
namespace core_reportbuilder\external\reports;
|
| 19 |
namespace core_reportbuilder\external\reports;
|
20 |
|
| 20 |
|
21 |
use core_customfield_generator;
|
| 21 |
use core_reportbuilder_generator;
|
22 |
use core_reportbuilder_generator;
|
| 22 |
use core_external\external_api;
|
23 |
use core_external\external_api;
|
| Línea 23... |
Línea 24... |
| 23 |
use externallib_advanced_testcase;
|
24 |
use externallib_advanced_testcase;
|
| Línea 24... |
Línea 25... |
| 24 |
use core_reportbuilder\report_access_exception;
|
25 |
use core_reportbuilder\exception\report_access_exception;
|
| Línea 35... |
Línea 36... |
| 35 |
* @package core_reportbuilder
|
36 |
* @package core_reportbuilder
|
| 36 |
* @covers \core_reportbuilder\external\reports\retrieve
|
37 |
* @covers \core_reportbuilder\external\reports\retrieve
|
| 37 |
* @copyright 2022 Paul Holden <paulh@moodle.com>
|
38 |
* @copyright 2022 Paul Holden <paulh@moodle.com>
|
| 38 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
39 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
| 39 |
*/
|
40 |
*/
|
| 40 |
class retrieve_test extends externallib_advanced_testcase {
|
41 |
final class retrieve_test extends externallib_advanced_testcase {
|
| Línea 41... |
Línea 42... |
| 41 |
|
42 |
|
| 42 |
/**
|
43 |
/**
|
| 43 |
* Text execute method
|
44 |
* Text execute method
|
| 44 |
*/
|
45 |
*/
|
| Línea 47... |
Línea 48... |
| 47 |
$this->setAdminUser();
|
48 |
$this->setAdminUser();
|
| Línea 48... |
Línea 49... |
| 48 |
|
49 |
|
| 49 |
$this->getDataGenerator()->create_user(['firstname' => 'Zoe', 'lastname' => 'Zebra', 'email' => 'u1@example.com']);
|
50 |
$this->getDataGenerator()->create_user(['firstname' => 'Zoe', 'lastname' => 'Zebra', 'email' => 'u1@example.com']);
|
| Línea -... |
Línea 51... |
| - |
|
51 |
$this->getDataGenerator()->create_user(['firstname' => 'Charlie', 'lastname' => 'Carrot', 'email' => 'u2@example.com']);
|
| - |
|
52 |
|
| - |
|
53 |
/** @var core_customfield_generator $generator */
|
| - |
|
54 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_customfield');
|
| - |
|
55 |
$category = $generator->create_category(['component' => 'core_reportbuilder', 'area' => 'report']);
|
| - |
|
56 |
$generator->create_field([
|
| - |
|
57 |
'categoryid' => $category->get('id'),
|
| - |
|
58 |
'name' => 'My field',
|
| - |
|
59 |
'shortname' => 'myfield',
|
| - |
|
60 |
'type' => 'number',
|
| 50 |
$this->getDataGenerator()->create_user(['firstname' => 'Charlie', 'lastname' => 'Carrot', 'email' => 'u2@example.com']);
|
61 |
]);
|
| 51 |
|
62 |
|
| Línea 52... |
Línea 63... |
| 52 |
/** @var core_reportbuilder_generator $generator */
|
63 |
/** @var core_reportbuilder_generator $generator */
|
| - |
|
64 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
| - |
|
65 |
|
| - |
|
66 |
$report = $generator->create_report([
|
| - |
|
67 |
'name' => 'My report',
|
| - |
|
68 |
'source' => users::class,
|
| - |
|
69 |
'default' => false,
|
| 53 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
70 |
'tags' => ['cat', 'dog'],
|
| 54 |
|
71 |
'customfield_myfield' => 42,
|
| Línea 55... |
Línea 72... |
| 55 |
$report = $generator->create_report(['name' => 'My report', 'source' => users::class, 'default' => false]);
|
72 |
]);
|
| 56 |
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:fullname', 'sortenabled' => 1]);
|
73 |
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:fullname', 'sortenabled' => 1]);
|
| 57 |
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:email']);
|
74 |
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:email']);
|
| Línea 58... |
Línea 75... |
| 58 |
|
75 |
|
| 59 |
// There are three users (admin plus the two previouly created), but we're paging the first two only.
|
76 |
// There are three users (admin plus the two previouly created), but we're paging the first two only.
|
| 60 |
$result = retrieve::execute($report->get('id'), 0, 2);
|
77 |
$result = retrieve::execute($report->get('id'), 0, 2);
|
| - |
|
78 |
$result = external_api::clean_returnvalue(retrieve::execute_returns(), $result);
|
| Línea 61... |
Línea 79... |
| 61 |
$result = external_api::clean_returnvalue(retrieve::execute_returns(), $result);
|
79 |
|
| 62 |
|
80 |
// All data is generated by exporters, just assert relevant sample of each.
|
| 63 |
// All data is generated by exporters, just assert relevant sample of each.
|
81 |
$this->assertArrayHasKey('details', $result);
|
| 64 |
$this->assertArrayHasKey('details', $result);
|
82 |
$this->assertEquals('My report', $result['details']['name']);
|
| Línea 79... |
Línea 97... |
| 79 |
|
97 |
|
| 80 |
// Retrieve the second set of pages results.
|
98 |
// Retrieve the second set of pages results.
|
| 81 |
$result = retrieve::execute($report->get('id'), 1, 2);
|
99 |
$result = retrieve::execute($report->get('id'), 1, 2);
|
| Línea -... |
Línea 100... |
| - |
|
100 |
$result = external_api::clean_returnvalue(retrieve::execute_returns(), $result);
|
| 82 |
$result = external_api::clean_returnvalue(retrieve::execute_returns(), $result);
|
101 |
|
| 83 |
|
102 |
// All data is generated by exporters, just assert relevant sample of each.
|
| - |
|
103 |
$this->assertArrayHasKey('details', $result);
|
| - |
|
104 |
$this->assertEquals('My report', $result['details']['name']);
|
| Línea 84... |
Línea 105... |
| 84 |
$this->assertArrayHasKey('details', $result);
|
105 |
$this->assertEquals(['cat', 'dog'], array_column($result['details']['tags'], 'name'));
|
| 85 |
$this->assertEquals('My report', $result['details']['name']);
|
106 |
$this->assertEquals(['42'], array_column($result['details']['customfields']['data'], 'value'));
|
| 86 |
|
107 |
|
| 87 |
$this->assertArrayHasKey('data', $result);
|
108 |
$this->assertArrayHasKey('data', $result);
|