See Release Notes
Long Term Support Release
Differences Between: [Versions 39 and 311] [Versions 39 and 400] [Versions 39 and 401] [Versions 39 and 402] [Versions 39 and 403]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Action event tests. 19 * 20 * @package core_calendar 21 * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 defined('MOODLE_INTERNAL') || die(); 26 27 use core_calendar\local\event\entities\action_event; 28 use core_calendar\local\event\value_objects\action; 29 use core_calendar\local\event\value_objects\event_description; 30 use core_calendar\local\event\value_objects\event_times; 31 use core_calendar\local\event\entities\event_collection_interface; 32 use core_calendar\local\event\entities\event_interface; 33 34 /** 35 * Action event testcase. 36 * 37 * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz> 38 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 39 */ 40 class core_calendar_action_event_testcase extends advanced_testcase { 41 /** 42 * Test event class getters. 43 * 44 * @dataProvider getters_testcases() 45 * @param array $constructorparams Associative array of constructor parameters. 46 */ 47 public function test_getters($constructorparams) { 48 $event = new action_event( 49 $constructorparams['event'], 50 $constructorparams['action'] 51 ); 52 53 foreach ($constructorparams as $name => $value) { 54 if ($name !== 'event') { 55 $this->assertEquals($event->{'get_' . $name}(), $value); 56 } 57 } 58 } 59 60 /** 61 * Test cases for getters test. 62 */ 63 public function getters_testcases() { 64 return [ 65 'Dataset 1' => [ 66 'constructorparams' => [ 67 'event' => new core_calendar_action_event_test_event(), 68 'action' => new action( 69 'action 1', 70 new moodle_url('http://example.com'), 71 2, 72 true 73 ) 74 ] 75 ], 76 'Dataset 2' => [ 77 'constructorparams' => [ 78 'event' => new core_calendar_action_event_test_event(), 79 'action' => new action( 80 'action 2', 81 new moodle_url('http://example.com'), 82 5, 83 false 84 ) 85 ] 86 ], 87 ]; 88 } 89 } 90 91 /** 92 * Test event. 93 * 94 * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz> 95 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 96 */ 97 class core_calendar_action_event_test_event implements event_interface { 98 99 public function get_id() { 100 return 1729; 101 } 102 103 public function get_name() { 104 return 'Jeff'; 105 } 106 107 public function get_description() { 108 return new event_description('asdf', 1); 109 } 110 111 public function get_location() { 112 return 'Cube office'; 113 } 114 115 public function get_category() { 116 return new \stdClass(); 117 } 118 119 public function get_course() { 120 return new \stdClass(); 121 } 122 123 public function get_course_module() { 124 return new \stdClass(); 125 } 126 127 public function get_group() { 128 return new \stdClass(); 129 } 130 131 public function get_user() { 132 return new \stdClass(); 133 } 134 135 public function get_type() { 136 return 'asdf'; 137 } 138 139 public function get_times() { 140 return new event_times( 141 (new \DateTimeImmutable())->setTimestamp(-386380800), 142 (new \DateTimeImmutable())->setTimestamp(115776000), 143 (new \DateTimeImmutable())->setTimestamp(115776000), 144 (new \DateTimeImmutable())->setTimestamp(time()) 145 ); 146 } 147 148 public function get_repeats() { 149 return new core_calendar_action_event_test_event_collection(); 150 } 151 152 public function get_subscription() { 153 return new \stdClass(); 154 } 155 156 public function is_visible() { 157 return true; 158 } 159 160 /** 161 * Component 162 * @return string|null 163 */ 164 public function get_component() { 165 return null; 166 } 167 } 168 169 /** 170 * Test event collection. 171 * 172 * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz> 173 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 174 */ 175 class core_calendar_action_event_test_event_collection implements event_collection_interface { 176 /** 177 * @var array 178 */ 179 protected $events; 180 181 /** 182 * core_calendar_action_event_test_event_collection constructor. 183 */ 184 public function __construct() { 185 $this->events = [ 186 'not really an event hahaha', 187 'also not really. gottem.' 188 ]; 189 } 190 191 public function get_id() { 192 return 1729; 193 } 194 195 public function get_num() { 196 return 2; 197 } 198 199 public function getIterator() { 200 foreach ($this->events as $event) { 201 yield $event; 202 } 203 } 204 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body