. declare(strict_types=1); namespace core_course\reportbuilder\datasource; use core_reportbuilder_testcase; use core_reportbuilder_generator; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php"); /** * Unit tests for component datasources * * @package core_course * @covers \core_course\reportbuilder\datasource\courses * @copyright 2021 Paul Holden * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class datasource_test extends core_reportbuilder_testcase { /** * Test courses datasource */ public function test_courses_datasource(): void { $this->resetAfterTest(); // Test subject. $category = $this->getDataGenerator()->create_category(['name' => 'My cats']); $course = $this->getDataGenerator()->create_course([ 'category' => $category->id, 'fullname' => 'All about cats', 'shortname' => 'C101', 'idnumber' => 'CAT101' ]); /** @var core_reportbuilder_generator $generator */ $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder'); $report = $generator->create_report(['name' => 'Courses', 'source' => courses::class]); $content = $this->get_custom_report_content($report->get('id')); $this->assertCount(1, $content); $contentrow = array_values(reset($content)); $this->assertEquals([ 'My cats', // Category name. 'C101', // Course shortname. 'All about cats', // Course fullname. 'CAT101', // Course ID number. ], $contentrow); } }