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 * Message sink. 19 * 20 * @package core 21 * @category phpunit 22 * @copyright 2012 Petr Skoda {@link http://skodak.org} 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 27/** 28 * Message sink. 29 * 30 * @package core 31 * @category phpunit 32 * @copyright 2012 Petr Skoda {@link http://skodak.org} 33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 34 */ 35class phpunit_message_sink { 36 /** @var array of records from messages table */ 37 protected $messages = array(); 38 39 /** 40 * Stop message redirection. 41 * 42 * Use if you do not want message redirected any more. 43 */ 44 public function close() { 45 phpunit_util::stop_message_redirection(); 46 } 47 48 /** 49 * To be called from phpunit_util only! 50 * 51 * @param stdClass $message record from messages table 52 */ 53 public function add_message($message) { 54 /* Number messages from 0. */ 55 $this->messages[] = $message; 56 } 57 58 /** 59 * Returns all redirected messages. 60 * 61 * The instances are records from the messages table. 62 * The array indexes are numbered from 0 and the order is matching 63 * the creation of events. 64 * 65 * @return array 66 */ 67 public function get_messages() { 68 return $this->messages; 69 } 70 71 /** 72 * Return number of messages redirected to this sink. 73 * @return int 74 */ 75 public function count() { 76 return count($this->messages); 77 } 78 79 /** 80 * Removes all previously stored messages. 81 */ 82 public function clear() { 83 $this->messages = array(); 84 } 85} 86