. /** * Unit tests for the import_handler_info class. * * @package tool_moodlenet * @category test * @copyright 2020 Jake Dallimore * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace tool_moodlenet\local\tests; use tool_moodlenet\local\import_handler_info; use tool_moodlenet\local\import_strategy; use tool_moodlenet\local\import_strategy_file; defined('MOODLE_INTERNAL') || die(); /** * Class tool_moodlenet_import_handler_info_testcase, providing test cases for the import_handler_info class. */ class tool_moodlenet_import_handler_info_testcase extends \advanced_testcase { /** * Test init and the getters. * * @dataProvider handler_info_data_provider * @param string $modname the name of the mod. * @param string $description description of the mod. * @param bool $expectexception whether we expect an exception during init or not. */ public function test_initialisation($modname, $description, $expectexception) { $this->resetAfterTest(); // Skip those cases we cannot init. if ($expectexception) { $this->expectException(\coding_exception::class); $handlerinfo = new import_handler_info($modname, $description, new import_strategy_file()); } $handlerinfo = new import_handler_info($modname, $description, new import_strategy_file()); $this->assertEquals($modname, $handlerinfo->get_module_name()); $this->assertEquals($description, $handlerinfo->get_description()); $this->assertInstanceOf(import_strategy::class, $handlerinfo->get_strategy()); } /** * Data provider for creation of import_handler_info objects. * * @return array the data for creation of the info object. */ public function handler_info_data_provider() { return [ 'All data present' => ['label', 'Add a label to the course', false], 'Empty module name' => ['', 'Add a file resource to the course', true], 'Empty description' => ['resource', '', true], ]; } }