moodle/calendar/tests/action_test.php
Cameron Ball aa457b7dee MDL-57730 core_calendar: Action interface aware of actionability
We need a way to decide whether an action can currently be completed
(e.g., an assignment where submissions are not yet open can not
be actioned, even though it may be displayed on the upcomming events
list).

To do this, the action interface now contains an is_actionable method.

Part of MDL-55611 epic.
2017-04-03 11:36:33 +08:00

83 lines
2.6 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/>.
/**
* Action tests.
*
* @package core_calendar
* @copyright 2017 Cameron Ball <cameron@cameron1729.xyz>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
use core_calendar\local\event\value_objects\action;
/**
* Action testcase.
*
* @copyright 2017 Cameron Ball <cameron@cameron1729.xyz>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_calendar_action_testcase extends advanced_testcase {
/**
* Test action class getters.
*
* @dataProvider getters_testcases()
* @param array $constructorparams Associative array of constructor parameters.
*/
public function test_getters($constructorparams) {
$action = new action(
$constructorparams['name'],
$constructorparams['url'],
$constructorparams['item_count'],
$constructorparams['actionable']
);
foreach ($constructorparams as $name => $value) {
if ($name == 'actionable') {
$this->assertEquals($action->is_actionable(), $value);
} else {
$this->assertEquals($action->{'get_' . $name}(), $value);
}
}
}
/**
* Test cases for getters test.
*/
public function getters_testcases() {
return [
'Dataset 1' => [
'constructorparams' => [
'name' => 'Hello',
'url' => new moodle_url('http://example.com'),
'item_count' => 1,
'actionable' => true
]
],
'Dataset 2' => [
'constructorparams' => [
'name' => 'Goodbye',
'url' => new moodle_url('http://example.com'),
'item_count' => 2,
'actionable' => false
]
]
];
}
}