mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
654 lines
25 KiB
PHP
654 lines
25 KiB
PHP
|
<?php
|
||
|
// This file is part of Moodle - http://moodle.org/
|
||
|
//
|
||
|
// Moodle is free software: you can redistribute it and/or modify
|
||
|
// it under the terms of the GNU General Public License as published by
|
||
|
// the Free Software Foundation, either version 3 of the License, or
|
||
|
// (at your option) any later version.
|
||
|
//
|
||
|
// Moodle is distributed in the hope that it will be useful,
|
||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
// GNU General Public License for more details.
|
||
|
//
|
||
|
// You should have received a copy of the GNU General Public License
|
||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
/**
|
||
|
* Unit tests for core_grades\component_gradeitems;
|
||
|
*
|
||
|
* @package core_grades
|
||
|
* @category test
|
||
|
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
|
||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
|
||
|
*/
|
||
|
|
||
|
declare(strict_types = 1);
|
||
|
|
||
|
namespace tests\core_grades {
|
||
|
|
||
|
use advanced_testcase;
|
||
|
use core_grades\component_gradeitems;
|
||
|
use coding_exception;
|
||
|
|
||
|
/**
|
||
|
* Unit tests for core_grades\component_gradeitems;
|
||
|
*
|
||
|
* @package core_grades
|
||
|
* @category test
|
||
|
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
|
||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||
|
*/
|
||
|
class component_gradeitems_test extends advanced_testcase {
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not implement the mapping class excepts.
|
||
|
*/
|
||
|
public function test_get_itemname_mapping_for_component_does_not_exist(): void {
|
||
|
$mappings = component_gradeitems::get_itemname_mapping_for_component('invalid_component');
|
||
|
$this->assertIsArray($mappings);
|
||
|
$this->assertCount(1, $mappings);
|
||
|
$this->assertArrayHasKey(0, $mappings);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not implement the mapping class correctly excepts.
|
||
|
*/
|
||
|
public function test_get_itemname_mapping_for_valid_component_invalid_mapping(): void {
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemname_mapping_for_component('tests\core_grades\component_gradeitems\invalid');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which implements the mapping class correctly eets the correct set of mappings.
|
||
|
*/
|
||
|
public function test_get_itemname_mapping_for_valid_component_valid_mapping(): void {
|
||
|
$mapping = component_gradeitems::get_itemname_mapping_for_component('tests\core_grades\component_gradeitems\valid');
|
||
|
$this->assertIsArray($mapping);
|
||
|
$this->assertEquals([
|
||
|
0 => 'rating',
|
||
|
1 => 'someother',
|
||
|
], $mapping);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Data provider for is_valid_itemname tests.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function is_valid_itemname_provider(): array {
|
||
|
return [
|
||
|
'valid' => [
|
||
|
'someother',
|
||
|
true,
|
||
|
],
|
||
|
'validnotadvanced' => [
|
||
|
'rating',
|
||
|
true,
|
||
|
],
|
||
|
'invalid' => [
|
||
|
'doesnotexist',
|
||
|
false,
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component implementing advanced grading returns the correct areas.
|
||
|
*
|
||
|
* @dataProvider is_valid_itemname_provider
|
||
|
* @param string $itemname
|
||
|
* @param bool $isadvanced
|
||
|
*/
|
||
|
public function test_is_valid_itemname(string $itemname, bool $isadvanced): void {
|
||
|
$this->assertEquals(
|
||
|
$isadvanced,
|
||
|
component_gradeitems::is_valid_itemname('tests\core_grades\component_gradeitems\valid_and_advanced', $itemname)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_defines_advancedgrading_itemnames_for_component_does_not_exist(): void {
|
||
|
$this->assertFalse(component_gradeitems::defines_advancedgrading_itemnames_for_component('invalid_component'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_defines_advancedgrading_itemnames_for_component_no_interfaces(): void {
|
||
|
$this->assertFalse(component_gradeitems::defines_advancedgrading_itemnames_for_component('tests\core_grades\component_gradeitems\invalid'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which implements the item mapping but not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_defines_advancedgrading_itemnames_for_component_grading_no_interface(): void {
|
||
|
$this->assertFalse(component_gradeitems::defines_advancedgrading_itemnames_for_component('tests\core_grades\component_gradeitems\valid'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which implements the item mapping but not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_defines_advancedgrading_itemnames_for_component_grading_has_interface(): void {
|
||
|
$this->assertTrue(component_gradeitems::defines_advancedgrading_itemnames_for_component('tests\core_grades\component_gradeitems\valid_and_advanced'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_get_advancedgrading_itemnames_for_component_does_not_exist(): void {
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_advancedgrading_itemnames_for_component('invalid_component');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_get_advancedgrading_itemnames_for_component_no_interfaces(): void {
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_advancedgrading_itemnames_for_component('tests\core_grades\component_gradeitems\invalid');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which implements the item mapping but not implement the advancedgrading interface returns this.
|
||
|
*/
|
||
|
public function test_get_advancedgrading_itemnames_for_component_grading_no_interface(): void {
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_advancedgrading_itemnames_for_component('tests\core_grades\component_gradeitems\valid');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component implementing advanced grading returns the correct areas.
|
||
|
*/
|
||
|
public function test_get_advancedgrading_itemnames_for_component(): void {
|
||
|
$areas = component_gradeitems::get_advancedgrading_itemnames_for_component('tests\core_grades\component_gradeitems\valid_and_advanced');
|
||
|
$this->assertEquals(['someother'], $areas);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Data provider for is_advancedgrading_itemname tests.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function is_advancedgrading_itemname_provider(): array {
|
||
|
return [
|
||
|
'valid' => [
|
||
|
'someother',
|
||
|
true,
|
||
|
],
|
||
|
'validnotadvanced' => [
|
||
|
'rating',
|
||
|
false,
|
||
|
],
|
||
|
'invalid' => [
|
||
|
'doesnotexist',
|
||
|
false,
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component implementing advanced grading returns the correct areas.
|
||
|
*
|
||
|
* @dataProvider is_advancedgrading_itemname_provider
|
||
|
* @param string $itemname
|
||
|
* @param bool $isadvanced
|
||
|
*/
|
||
|
public function test_is_advancedgrading_itemname(string $itemname, bool $isadvanced): void {
|
||
|
$this->assertEquals(
|
||
|
$isadvanced,
|
||
|
component_gradeitems::is_advancedgrading_itemname('tests\core_grades\component_gradeitems\valid_and_advanced', $itemname)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Data provider for get_field_name_for_itemnumber.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function get_field_name_for_itemnumber_provider(): array {
|
||
|
return [
|
||
|
'Valid itemnumber 0 case 1' => [
|
||
|
0,
|
||
|
'gradecat',
|
||
|
'gradecat',
|
||
|
],
|
||
|
'Valid itemnumber 0 case 2' => [
|
||
|
0,
|
||
|
'melon',
|
||
|
'melon',
|
||
|
],
|
||
|
'Valid itemnumber 1 case 1' => [
|
||
|
1,
|
||
|
'gradecat',
|
||
|
'gradecat_someother',
|
||
|
],
|
||
|
'Valid itemnumber 1 case 2' => [
|
||
|
1,
|
||
|
'melon',
|
||
|
'melon_someother',
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that valid field names are correctly mapped for a valid component.
|
||
|
*
|
||
|
* @dataProvider get_field_name_for_itemnumber_provider
|
||
|
* @param int $itemnumber The item itemnumber to test
|
||
|
* @param string $fieldname The field name being translated
|
||
|
* @param string $expected The expected value
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemnumber(int $itemnumber, string $fieldname, string $expected): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
$this->assertEquals($expected, component_gradeitems::get_field_name_for_itemnumber($component, $itemnumber, $fieldname));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an invalid itemnumber does not provide any field name.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemnumber_invalid_itemnumber(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_field_name_for_itemnumber($component, 100, 'gradecat');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not define a mapping can still get a mapping for itemnumber 0.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemnumber_component_not_defining_mapping_itemnumber_zero(): void {
|
||
|
$component = 'tests\core_grades\othervalid';
|
||
|
|
||
|
$this->assertEquals('gradecat', component_gradeitems::get_field_name_for_itemnumber($component, 0, 'gradecat'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not define a mapping cannot get a mapping for itemnumber 1+.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemnumber_component_not_defining_mapping_itemnumber_nonzero(): void {
|
||
|
$component = 'tests\core_grades\othervalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_field_name_for_itemnumber($component, 100, 'gradecat');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which incorrectly defines a mapping cannot get a mapping for itemnumber 1+.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemnumber_component_invalid_mapping_itemnumber_nonzero(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\invalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_field_name_for_itemnumber($component, 100, 'gradecat');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Data provider for get_field_name_for_itemname.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function get_field_name_for_itemname_provider(): array {
|
||
|
return [
|
||
|
'Empty itemname empty case 1' => [
|
||
|
'',
|
||
|
'gradecat',
|
||
|
'gradecat',
|
||
|
],
|
||
|
'Empty itemname empty case 2' => [
|
||
|
'',
|
||
|
'melon',
|
||
|
'melon',
|
||
|
],
|
||
|
'First itemname empty case 1' => [
|
||
|
'rating',
|
||
|
'gradecat',
|
||
|
'gradecat',
|
||
|
],
|
||
|
'First itemname empty case 2' => [
|
||
|
'rating',
|
||
|
'melon',
|
||
|
'melon',
|
||
|
],
|
||
|
'Other itemname empty case 1' => [
|
||
|
'someother',
|
||
|
'gradecat',
|
||
|
'gradecat_someother',
|
||
|
],
|
||
|
'Other itemname empty case 2' => [
|
||
|
'someother',
|
||
|
'melon',
|
||
|
'melon_someother',
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that valid field names are correctly mapped for a valid component.
|
||
|
*
|
||
|
* @dataProvider get_field_name_for_itemname_provider
|
||
|
* @param string $itemname The item itemname to test
|
||
|
* @param string $fieldname The field name being translated
|
||
|
* @param string $expected The expected value
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemname(string $itemname, string $fieldname, string $expected): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
$this->assertEquals($expected, component_gradeitems::get_field_name_for_itemname($component, $itemname, $fieldname));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an invalid itemname does not provide any field name.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemname_invalid_itemname(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_field_name_for_itemname($component, 'typo', 'gradecat');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an empty itemname provides a matching fieldname regardless of whether the component exists or
|
||
|
* not.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemname_not_defining_mapping_empty_name(): void {
|
||
|
$component = 'tests\core_grades\othervalid';
|
||
|
|
||
|
$this->assertEquals('gradecat', component_gradeitems::get_field_name_for_itemname($component, '', 'gradecat'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an valid component with some itemname excepts.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemname_not_defining_mapping_with_name(): void {
|
||
|
$component = 'tests\core_grades\othervalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_field_name_for_itemname($component, 'example', 'gradecat');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an empty itemname provides a matching fieldname even if the mapping is invalid.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemname_invalid_mapping_empty_name(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\invalid';
|
||
|
|
||
|
$this->assertEquals('gradecat', component_gradeitems::get_field_name_for_itemname($component, '', 'gradecat'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an invalid mapping with some itemname excepts.
|
||
|
*/
|
||
|
public function test_get_field_name_for_itemname_invalid_mapping_with_name(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\invalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_field_name_for_itemname($component, 'example', 'gradecat');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Data provider for get_itemname_from_itemnumber.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function get_itemname_from_itemnumber_provider(): array {
|
||
|
return [
|
||
|
'Valid itemnumber 0' => [
|
||
|
0,
|
||
|
'',
|
||
|
],
|
||
|
'Valid itemnumber 1' => [
|
||
|
1,
|
||
|
'someother',
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that item names are correctly mapped for a valid component.
|
||
|
*
|
||
|
* @dataProvider get_itemname_from_itemnumber_provider
|
||
|
* @param int $itemnumber The item itemnumber to test
|
||
|
* @param string $expected The expected value
|
||
|
*/
|
||
|
public function test_get_itemname_from_itemnumber(int $itemnumber, string $expected): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
$this->assertEquals($expected, component_gradeitems::get_itemname_from_itemnumber($component, $itemnumber));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an itemnumber over 1000 is treated as itemnumber 0 for the purpose of outcomes.
|
||
|
*/
|
||
|
public function test_get_itemname_from_itemnumber_outcome_itemnumber(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
|
||
|
$this->assertEquals('', component_gradeitems::get_itemname_from_itemnumber($component, 1000));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an invalid itemnumber does not provide any field name.
|
||
|
*/
|
||
|
public function test_get_itemname_from_itemnumber_invalid_itemnumber(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemname_from_itemnumber($component, 100);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not define a mapping can still get a mapping for itemnumber 0.
|
||
|
*/
|
||
|
public function test_get_itemname_from_itemnumber_component_not_defining_mapping_itemnumber_zero(): void {
|
||
|
$component = 'tests\core_grades\othervalid';
|
||
|
|
||
|
$this->assertEquals('', component_gradeitems::get_itemname_from_itemnumber($component, 0));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which does not define a mapping cannot get a mapping for itemnumber 1+.
|
||
|
*/
|
||
|
public function test_get_itemname_from_itemnumber_component_not_defining_mapping_itemnumber_nonzero(): void {
|
||
|
$component = 'tests\core_grades\othervalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemname_from_itemnumber($component, 100);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that a component which incorrectly defines a mapping cannot get a mapping for itemnumber 1+.
|
||
|
*/
|
||
|
public function test_get_itemname_from_itemnumber_component_invalid_mapping_itemnumber_nonzero(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\invalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemname_from_itemnumber($component, 100);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Data provider for get_itemname_from_itemnumber.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function get_itemnumber_from_itemname_provider(): array {
|
||
|
return [
|
||
|
'Empty itemname empty' => [
|
||
|
'',
|
||
|
0,
|
||
|
],
|
||
|
'First itemname empty' => [
|
||
|
'rating',
|
||
|
0,
|
||
|
],
|
||
|
'Other itemname empty' => [
|
||
|
'someother',
|
||
|
1,
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that valid item names are correctly mapped for a valid component.
|
||
|
*
|
||
|
* @dataProvider get_itemnumber_from_itemname_provider
|
||
|
* @param string $itemname The item itemname to test
|
||
|
* @param int $expected The expected value
|
||
|
*/
|
||
|
public function test_get_itemnumber_from_itemname(string $itemname, int $expected): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
$this->assertEquals($expected, component_gradeitems::get_itemnumber_from_itemname($component, $itemname));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an invalid itemname excepts.
|
||
|
*/
|
||
|
public function test_get_itemnumber_from_itemname_invalid_itemname(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\valid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemnumber_from_itemname($component, 'typo');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an empty itemname provides a correct itemnumber regardless of whether the component exists or
|
||
|
* not.
|
||
|
*/
|
||
|
public function test_get_itemnumber_from_itemname_not_defining_mapping_empty_name(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\othervalid';
|
||
|
|
||
|
$this->assertEquals(0, component_gradeitems::get_itemnumber_from_itemname($component, ''));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an valid component with some itemname excepts.
|
||
|
*/
|
||
|
public function test_get_itemnumber_from_itemname_not_defining_mapping_with_name(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\othervalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemnumber_from_itemname($component, 'example');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an empty itemname provides a matching fieldname even if the mapping is invalid.
|
||
|
*/
|
||
|
public function test_get_itemnumber_from_itemname_invalid_mapping_empty_name(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\invalid';
|
||
|
|
||
|
$this->assertEquals(0, component_gradeitems::get_itemnumber_from_itemname($component, ''));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ensure that an invalid mapping with some itemname excepts.
|
||
|
*/
|
||
|
public function test_get_itemnumber_from_itemname_invalid_mapping_with_name(): void {
|
||
|
$component = 'tests\core_grades\component_gradeitems\invalid';
|
||
|
|
||
|
$this->expectException(coding_exception::class);
|
||
|
component_gradeitems::get_itemnumber_from_itemname($component, 'example');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace tests\core_grades\component_gradeitems\valid\grades {
|
||
|
use core_grades\local\gradeitem\itemnumber_mapping;
|
||
|
|
||
|
/**
|
||
|
* Valid class for testing mappings.
|
||
|
*
|
||
|
* @package core_grades
|
||
|
* @category test
|
||
|
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
|
||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||
|
*/
|
||
|
class gradeitems implements itemnumber_mapping {
|
||
|
/**
|
||
|
* Get the grade item mapping of item number to item name.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function get_itemname_mapping_for_component(): array {
|
||
|
return [
|
||
|
0 => 'rating',
|
||
|
1 => 'someother',
|
||
|
];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace tests\core_grades\component_gradeitems\valid_and_advanced\grades {
|
||
|
use core_grades\local\gradeitem\itemnumber_mapping;
|
||
|
use core_grades\local\gradeitem\advancedgrading_mapping;
|
||
|
|
||
|
/**
|
||
|
* Valid class for testing mappings.
|
||
|
*
|
||
|
* @package core_grades
|
||
|
* @category test
|
||
|
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
|
||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||
|
*/
|
||
|
class gradeitems implements itemnumber_mapping, advancedgrading_mapping {
|
||
|
/**
|
||
|
* Get the grade item mapping of item number to item name.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function get_itemname_mapping_for_component(): array {
|
||
|
return [
|
||
|
0 => 'rating',
|
||
|
1 => 'someother',
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the list of items which define advanced grading.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function get_advancedgrading_itemnames(): array {
|
||
|
return [
|
||
|
'someother',
|
||
|
];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace tests\core_grades\component_gradeitems\invalid\grades {
|
||
|
use core_grades\local\gradeitem\itemnumber_mapping;
|
||
|
|
||
|
/**
|
||
|
* Invalid class for testing mappings.
|
||
|
*
|
||
|
* @package core_grades
|
||
|
* @category test
|
||
|
* @copyright 2019 Andrew Nicols <andrew@nicols.co.uk>
|
||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||
|
*/
|
||
|
class gradeitems {
|
||
|
/**
|
||
|
* Get the grade item mapping of item number to item name.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function get_itemname_mapping_for_component(): array {
|
||
|
return [
|
||
|
0 => 'rating',
|
||
|
1 => 'someother',
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the list of items which define advanced grading.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function get_advancedgrading_itemnames(): array {
|
||
|
return [
|
||
|
1 => 'someother',
|
||
|
];
|
||
|
}
|
||
|
}
|
||
|
}
|