Added exact other tests
Signed-off-by: Valentin Popov <info@valentineus.link>
This commit is contained in:
@ -31,29 +31,57 @@ use local_webhooks\local\record;
|
|||||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
*/
|
*/
|
||||||
final class local_webhooks_external_testcase extends externallib_advanced_testcase {
|
final class local_webhooks_external_testcase extends externallib_advanced_testcase {
|
||||||
|
/**
|
||||||
|
* Generate random an event's list.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @throws \ReflectionException
|
||||||
|
*/
|
||||||
|
private static function get_random_events(): array {
|
||||||
|
$result = array_rand(api::get_events(), random_int(2, 10));
|
||||||
|
|
||||||
|
return is_array($result) ? $result : [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a random record.
|
||||||
|
*
|
||||||
|
* @return \local_webhooks\local\record
|
||||||
|
*
|
||||||
|
* @throws \ReflectionException
|
||||||
|
*/
|
||||||
|
private static function get_random_record(): record {
|
||||||
|
$record = new record();
|
||||||
|
|
||||||
|
$record->events = self::get_random_events();
|
||||||
|
$record->header = 'application/json';
|
||||||
|
$record->name = uniqid('', false);
|
||||||
|
$record->point = 'http://example.org/' . urlencode($record->name);
|
||||||
|
$record->status = true;
|
||||||
|
$record->token = generate_uuid();
|
||||||
|
|
||||||
|
return $record;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Testing external get record's data.
|
* Testing external get record's data.
|
||||||
*
|
*
|
||||||
* @throws \ReflectionException
|
* @throws \ReflectionException
|
||||||
* @throws \coding_exception
|
* @throws \coding_exception
|
||||||
* @throws \dml_exception
|
* @throws \dml_exception
|
||||||
|
* @throws \invalid_parameter_exception
|
||||||
* @throws \invalid_response_exception
|
* @throws \invalid_response_exception
|
||||||
|
* @throws \restricted_context_exception
|
||||||
*/
|
*/
|
||||||
public function test_get_service() {
|
public function test_get_service() {
|
||||||
self::setAdminUser();
|
self::setAdminUser();
|
||||||
|
|
||||||
$this->resetAfterTest();
|
$this->resetAfterTest();
|
||||||
|
|
||||||
$record = new record();
|
|
||||||
$record->events = array_rand(api::get_events(), random_int(2, 10));
|
|
||||||
$record->header = 'application/json';
|
|
||||||
$record->name = 'Example name';
|
|
||||||
$record->point = 'http://example.org/';
|
|
||||||
$record->status = true;
|
|
||||||
$record->token = generate_uuid();
|
|
||||||
|
|
||||||
// Creating a new record.
|
// Creating a new record.
|
||||||
$record->id = api::create_service($record);
|
$record = self::get_random_record();
|
||||||
|
$record->id = api::add_service($record);
|
||||||
|
|
||||||
$return = local_webhooks_external::get_service($record->id);
|
$return = local_webhooks_external::get_service($record->id);
|
||||||
$return = external_api::clean_returnvalue(local_webhooks_external::get_service_returns(), $return);
|
$return = external_api::clean_returnvalue(local_webhooks_external::get_service_returns(), $return);
|
||||||
@ -70,7 +98,6 @@ final class local_webhooks_external_testcase extends externallib_advanced_testca
|
|||||||
// Testing an event's list.
|
// Testing an event's list.
|
||||||
self::assertInternalType('array', $return['events']);
|
self::assertInternalType('array', $return['events']);
|
||||||
self::assertNotCount(0, $return['events']);
|
self::assertNotCount(0, $return['events']);
|
||||||
|
|
||||||
foreach ($return['events'] as $event) {
|
foreach ($return['events'] as $event) {
|
||||||
self::assertContains($event, $record->events);
|
self::assertContains($event, $record->events);
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ global $CFG;
|
|||||||
|
|
||||||
require_once($CFG->dirroot . '/local/webhooks/classes/local/api.php');
|
require_once($CFG->dirroot . '/local/webhooks/classes/local/api.php');
|
||||||
|
|
||||||
|
use core\event\course_created;
|
||||||
use core\task\manager;
|
use core\task\manager;
|
||||||
use local_webhooks\local\api;
|
use local_webhooks\local\api;
|
||||||
use local_webhooks\local\record;
|
use local_webhooks\local\record;
|
||||||
@ -32,6 +33,26 @@ use local_webhooks\task\notify;
|
|||||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
*/
|
*/
|
||||||
final class local_webhooks_task_testcase extends advanced_testcase {
|
final class local_webhooks_task_testcase extends advanced_testcase {
|
||||||
|
const EVENTNAME = '\\' . course_created::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a random record.
|
||||||
|
*
|
||||||
|
* @return \local_webhooks\local\record
|
||||||
|
*/
|
||||||
|
private static function get_random_record(): record {
|
||||||
|
$record = new record();
|
||||||
|
|
||||||
|
$record->events = [self::EVENTNAME];
|
||||||
|
$record->header = 'application/json';
|
||||||
|
$record->name = uniqid('', false);
|
||||||
|
$record->point = 'http://example.org/' . urlencode($record->name);
|
||||||
|
$record->status = true;
|
||||||
|
$record->token = generate_uuid();
|
||||||
|
|
||||||
|
return $record;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Testing add a task to the queue.
|
* Testing add a task to the queue.
|
||||||
*/
|
*/
|
||||||
@ -43,10 +64,10 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
|||||||
|
|
||||||
manager::queue_adhoc_task(new notify());
|
manager::queue_adhoc_task(new notify());
|
||||||
|
|
||||||
$tasks = manager::get_adhoc_tasks('\local_webhooks\task\notify');
|
$tasks = manager::get_adhoc_tasks(notify::class);
|
||||||
|
|
||||||
self::assertCount(1, $tasks);
|
self::assertCount(1, $tasks);
|
||||||
self::assertInstanceOf('\local_webhooks\task\notify', array_shift($tasks));
|
self::assertInstanceOf(notify::class, array_shift($tasks));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -62,18 +83,12 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
|||||||
curl::mock_response('{}');
|
curl::mock_response('{}');
|
||||||
$this->resetAfterTest();
|
$this->resetAfterTest();
|
||||||
|
|
||||||
$record = new record();
|
$record = self::get_random_record();
|
||||||
$record->events = ['\core\event\course_viewed'];
|
|
||||||
$record->header = 'application/json';
|
|
||||||
$record->name = 'Example name';
|
|
||||||
$record->point = 'http://example.org/';
|
|
||||||
$record->status = false;
|
$record->status = false;
|
||||||
$record->token = '967b2286-0874-4938-b088-efdbcf8a79bc';
|
$record->id = api::add_service($record);
|
||||||
|
|
||||||
api::create_service($record);
|
|
||||||
|
|
||||||
$task = new notify();
|
$task = new notify();
|
||||||
$task->set_custom_data(['eventname' => '\core\event\course_viewed']);
|
$task->set_custom_data(['eventname' => self::EVENTNAME]);
|
||||||
$task->execute();
|
$task->execute();
|
||||||
|
|
||||||
self::assertNull($task->debug);
|
self::assertNull($task->debug);
|
||||||
@ -92,18 +107,11 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
|||||||
curl::mock_response('{}');
|
curl::mock_response('{}');
|
||||||
$this->resetAfterTest();
|
$this->resetAfterTest();
|
||||||
|
|
||||||
$record = new record();
|
$record = self::get_random_record();
|
||||||
$record->events = ['\core\event\course_viewed'];
|
$record->id = api::add_service($record);
|
||||||
$record->header = 'application/json';
|
|
||||||
$record->name = 'Example name';
|
|
||||||
$record->point = 'http://example.org/';
|
|
||||||
$record->status = true;
|
|
||||||
$record->token = '967b2286-0874-4938-b088-efdbcf8a79bc';
|
|
||||||
|
|
||||||
$record->id = api::create_service($record);
|
|
||||||
|
|
||||||
$task = new notify();
|
$task = new notify();
|
||||||
$task->set_custom_data(['eventname' => '\core\event\course_viewed']);
|
$task->set_custom_data(['eventname' => self::EVENTNAME]);
|
||||||
$task->execute();
|
$task->execute();
|
||||||
|
|
||||||
self::assertCount(1, $task->debug);
|
self::assertCount(1, $task->debug);
|
||||||
@ -133,15 +141,8 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
|||||||
|
|
||||||
$generator = self::getDataGenerator();
|
$generator = self::getDataGenerator();
|
||||||
|
|
||||||
$record = new record();
|
$record = self::get_random_record();
|
||||||
$record->events = ['\core\event\course_created'];
|
$record->id = api::add_service($record);
|
||||||
$record->header = 'application/json';
|
|
||||||
$record->name = 'Example name';
|
|
||||||
$record->point = 'http://example.org/';
|
|
||||||
$record->status = true;
|
|
||||||
$record->token = '967b2286-0874-4938-b088-efdbcf8a79bc';
|
|
||||||
|
|
||||||
api::create_service($record);
|
|
||||||
|
|
||||||
$total = random_int(5, 20);
|
$total = random_int(5, 20);
|
||||||
for ($i = 0; $i < $total; $i++) {
|
for ($i = 0; $i < $total; $i++) {
|
||||||
@ -150,11 +151,9 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
|||||||
|
|
||||||
$debug = [];
|
$debug = [];
|
||||||
foreach (manager::get_adhoc_tasks(notify::class) as $event) {
|
foreach (manager::get_adhoc_tasks(notify::class) as $event) {
|
||||||
if (!is_object($event)) {
|
self::assertInstanceOf(notify::class, $event);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var \local_webhooks\task\notify $event */
|
/** @var \local_webhooks\task\notify $event */
|
||||||
|
|
||||||
$event->execute();
|
$event->execute();
|
||||||
|
|
||||||
if (isset($event->debug) && is_array($event->debug)) {
|
if (isset($event->debug) && is_array($event->debug)) {
|
||||||
@ -180,25 +179,16 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
|||||||
|
|
||||||
$generator = self::getDataGenerator();
|
$generator = self::getDataGenerator();
|
||||||
|
|
||||||
$record = new record();
|
$record = self::get_random_record();
|
||||||
$record->events = ['\core\event\course_created'];
|
$record->id = api::add_service($record);
|
||||||
$record->header = 'application/json';
|
|
||||||
$record->name = 'Example name';
|
|
||||||
$record->point = 'http://example.org/';
|
|
||||||
$record->status = true;
|
|
||||||
$record->token = '967b2286-0874-4938-b088-efdbcf8a79bc';
|
|
||||||
|
|
||||||
api::create_service($record);
|
|
||||||
|
|
||||||
$course = $generator->create_course();
|
$course = $generator->create_course();
|
||||||
|
|
||||||
$debug = [];
|
$debug = [];
|
||||||
foreach (manager::get_adhoc_tasks(notify::class) as $event) {
|
foreach (manager::get_adhoc_tasks(notify::class) as $event) {
|
||||||
if (!is_object($event)) {
|
self::assertInstanceOf(notify::class, $event);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var \local_webhooks\task\notify $event */
|
/** @var \local_webhooks\task\notify $event */
|
||||||
|
|
||||||
$event->execute();
|
$event->execute();
|
||||||
|
|
||||||
if (isset($event->debug) && is_array($event->debug)) {
|
if (isset($event->debug) && is_array($event->debug)) {
|
||||||
|
Reference in New Issue
Block a user