81407f18ec
The current ->setMethods() has been silently (won't emit any warning) in PHPUnit 9. And will stop working (current plans) in PHPUnit 10. Basically the now deprecated method has been split into: - onlyMethods(): To point to existing methods in the mocked artifact. - addMethods(): To point to non existing (yet) methods in the mocked artifact. In practice that means that all our current setMethods() calls can be converted to onlyMethods() (existing) and done. The addMethods() is mostly useful on development phases, not final testing. Finally note that <null> isn't accepted anymore as parameter to double all the methods. Instead empty array [] must be used. Link: https://github.com/sebastianbergmann/phpunit/issues/3770
69 lines
2.2 KiB
PHP
69 lines
2.2 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/>.
|
|
defined('MOODLE_INTERNAL') || exit();
|
|
|
|
/**
|
|
* Unit tests for the subscription class.
|
|
* @since 3.2.0
|
|
*
|
|
* @package tool_monitor
|
|
* @category test
|
|
* @copyright 2016 Jake Dallimore <jrhdallimore@gmail.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
class tool_monitor_subscription_testcase extends advanced_testcase {
|
|
|
|
/**
|
|
* @var \tool_monitor\subscription $subscription object.
|
|
*/
|
|
private $subscription;
|
|
|
|
/**
|
|
* Test set up.
|
|
*/
|
|
public function setUp(): void {
|
|
$this->resetAfterTest(true);
|
|
|
|
// Create the mock subscription.
|
|
$sub = new stdClass();
|
|
$sub->id = 100;
|
|
$sub->name = 'My test rule';
|
|
$sub->courseid = 20;
|
|
$mockbuilder = $this->getMockBuilder('\tool_monitor\subscription');
|
|
$mockbuilder->onlyMethods([]);
|
|
$mockbuilder->setConstructorArgs(array($sub));
|
|
$this->subscription = $mockbuilder->getMock();
|
|
}
|
|
|
|
/**
|
|
* Test for the magic __isset method.
|
|
*/
|
|
public function test_magic_isset() {
|
|
$this->assertEquals(true, isset($this->subscription->name));
|
|
$this->assertEquals(true, isset($this->subscription->courseid));
|
|
$this->assertEquals(false, isset($this->subscription->ruleid));
|
|
}
|
|
|
|
/**
|
|
* Test for the magic __get method.
|
|
*/
|
|
public function test_magic_get() {
|
|
$this->assertEquals(20, $this->subscription->courseid);
|
|
$this->expectException(coding_exception::class);
|
|
$this->subscription->ruleid;
|
|
}
|
|
}
|