Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
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);