/calendar/tests/action_event_test.php
https://github.com/markn86/moodle · PHP · 204 lines · 119 code · 27 blank · 58 comment · 2 complexity · 3b30e2af2b99901d925e9dde951254ed MD5 · raw file
- <?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 event 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\entities\action_event;
- use core_calendar\local\event\value_objects\action;
- use core_calendar\local\event\value_objects\event_description;
- use core_calendar\local\event\value_objects\event_times;
- use core_calendar\local\event\entities\event_collection_interface;
- use core_calendar\local\event\entities\event_interface;
- /**
- * Action event 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_event_testcase extends advanced_testcase {
- /**
- * Test event class getters.
- *
- * @dataProvider getters_testcases()
- * @param array $constructorparams Associative array of constructor parameters.
- */
- public function test_getters($constructorparams) {
- $event = new action_event(
- $constructorparams['event'],
- $constructorparams['action']
- );
- foreach ($constructorparams as $name => $value) {
- if ($name !== 'event') {
- $this->assertEquals($event->{'get_' . $name}(), $value);
- }
- }
- }
- /**
- * Test cases for getters test.
- */
- public function getters_testcases() {
- return [
- 'Dataset 1' => [
- 'constructorparams' => [
- 'event' => new core_calendar_action_event_test_event(),
- 'action' => new action(
- 'action 1',
- new moodle_url('http://example.com'),
- 2,
- true
- )
- ]
- ],
- 'Dataset 2' => [
- 'constructorparams' => [
- 'event' => new core_calendar_action_event_test_event(),
- 'action' => new action(
- 'action 2',
- new moodle_url('http://example.com'),
- 5,
- false
- )
- ]
- ],
- ];
- }
- }
- /**
- * Test event.
- *
- * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz>
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
- class core_calendar_action_event_test_event implements event_interface {
- public function get_id() {
- return 1729;
- }
- public function get_name() {
- return 'Jeff';
- }
- public function get_description() {
- return new event_description('asdf', 1);
- }
- public function get_location() {
- return 'Cube office';
- }
- public function get_category() {
- return new \stdClass();
- }
- public function get_course() {
- return new \stdClass();
- }
- public function get_course_module() {
- return new \stdClass();
- }
- public function get_group() {
- return new \stdClass();
- }
- public function get_user() {
- return new \stdClass();
- }
- public function get_type() {
- return 'asdf';
- }
- public function get_times() {
- return new event_times(
- (new \DateTimeImmutable())->setTimestamp(-386380800),
- (new \DateTimeImmutable())->setTimestamp(115776000),
- (new \DateTimeImmutable())->setTimestamp(115776000),
- (new \DateTimeImmutable())->setTimestamp(time())
- );
- }
- public function get_repeats() {
- return new core_calendar_action_event_test_event_collection();
- }
- public function get_subscription() {
- return new \stdClass();
- }
- public function is_visible() {
- return true;
- }
- /**
- * Component
- * @return string|null
- */
- public function get_component() {
- return null;
- }
- }
- /**
- * Test event collection.
- *
- * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz>
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
- class core_calendar_action_event_test_event_collection implements event_collection_interface {
- /**
- * @var array
- */
- protected $events;
- /**
- * core_calendar_action_event_test_event_collection constructor.
- */
- public function __construct() {
- $this->events = [
- 'not really an event hahaha',
- 'also not really. gottem.'
- ];
- }
- public function get_id() {
- return 1729;
- }
- public function get_num() {
- return 2;
- }
- public function getIterator() {
- foreach ($this->events as $event) {
- yield $event;
- }
- }
- }