Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 1441
Línea 17... Línea 17...
17
declare(strict_types=1);
17
declare(strict_types=1);
Línea 18... Línea 18...
18
 
18
 
Línea 19... Línea 19...
19
namespace core_reportbuilder\external;
19
namespace core_reportbuilder\external;
-
 
20
 
20
 
21
use advanced_testcase;
21
use advanced_testcase;
22
use core_customfield_generator;
Línea 22... Línea 23...
22
use core_reportbuilder_generator;
23
use core_reportbuilder_generator;
23
use core_user\reportbuilder\datasource\users;
24
use core_user\reportbuilder\datasource\users;
Línea 28... Línea 29...
28
 * @package     core_reportbuilder
29
 * @package     core_reportbuilder
29
 * @covers      \core_reportbuilder\external\custom_report_details_exporter
30
 * @covers      \core_reportbuilder\external\custom_report_details_exporter
30
 * @copyright   2022 Paul Holden <paulh@moodle.com>
31
 * @copyright   2022 Paul Holden <paulh@moodle.com>
31
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
32
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
32
 */
33
 */
33
class custom_report_details_exporter_test extends advanced_testcase {
34
final class custom_report_details_exporter_test extends advanced_testcase {
Línea 34... Línea 35...
34
 
35
 
35
    /**
36
    /**
36
     * Test exported data structure
37
     * Test exported data structure
37
     */
38
     */
38
    public function test_export(): void {
39
    public function test_export(): void {
Línea 39... Línea 40...
39
        global $PAGE;
40
        global $PAGE;
-
 
41
 
Línea -... Línea 42...
-
 
42
        $this->resetAfterTest();
40
 
43
        $this->setAdminUser();
-
 
44
 
-
 
45
        /** @var core_customfield_generator $generator */
-
 
46
        $generator = $this->getDataGenerator()->get_plugin_generator('core_customfield');
-
 
47
        $category = $generator->create_category(['component' => 'core_reportbuilder', 'area' => 'report']);
-
 
48
        $generator->create_field([
41
        $this->resetAfterTest();
49
            'categoryid' => $category->get('id'),
-
 
50
            'name' => 'My field',
Línea 42... Línea 51...
42
 
51
            'shortname' => 'myfield',
43
        $user = $this->getDataGenerator()->create_user();
52
            'type' => 'number',
44
        $this->setUser($user);
53
        ]);
-
 
54
 
-
 
55
        /** @var core_reportbuilder_generator $generator */
-
 
56
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
-
 
57
        $report = $generator->create_report([
-
 
58
            'name' => 'My report',
Línea 45... Línea 59...
45
 
59
            'source' => users::class,
46
        /** @var core_reportbuilder_generator $generator */
60
            'tags' => ['cat', 'dog'],
Línea 47... Línea 61...
47
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
61
            'customfield_myfield' => 42,
48
        $report = $generator->create_report(['name' => 'My report', 'source' => users::class]);
62
        ]);
49
 
63
 
Línea 50... Línea 64...
50
        $exporter = new custom_report_details_exporter($report);
64
        $exporter = new custom_report_details_exporter($report);
-
 
65
        $export = $exporter->export($PAGE->get_renderer('core_reportbuilder'));
51
        $export = $exporter->export($PAGE->get_renderer('core_reportbuilder'));
66
 
Línea -... Línea 67...
-
 
67
        // The exporter outputs the persistent details, plus two other properties.
-
 
68
        $this->assertEquals($report->get('name'), $export->name);
-
 
69
        $this->assertEquals($report->get('source'), $export->source);
-
 
70
 
-
 
71
        // Source name should be the name of the source.
-
 
72
        $this->assertObjectHasProperty('sourcename', $export);
-
 
73
        $this->assertEquals(users::get_name(), $export->sourcename);
-
 
74
 
52
 
75
        // We use the tag exporter for report tags.
53
        // The exporter outputs the persistent details, plus two other properties.
76
        $this->assertObjectHasProperty('tags', $export);
54
        $this->assertEquals($report->get('name'), $export->name);
77
        $this->assertEquals(['cat', 'dog'], array_column($export->tags, 'name'));
55
        $this->assertEquals($report->get('source'), $export->source);
78
 
56
 
79
        // We use the custom field exporter for report custom fields.