Added exact other tests
Signed-off-by: Valentin Popov <info@valentineus.link>
This commit is contained in:
parent
ae2f31261d
commit
0cbc05d52b
@ -31,29 +31,57 @@ use local_webhooks\local\record;
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
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.
|
||||
*
|
||||
* @throws \ReflectionException
|
||||
* @throws \coding_exception
|
||||
* @throws \dml_exception
|
||||
* @throws \invalid_parameter_exception
|
||||
* @throws \invalid_response_exception
|
||||
* @throws \restricted_context_exception
|
||||
*/
|
||||
public function test_get_service() {
|
||||
self::setAdminUser();
|
||||
|
||||
$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.
|
||||
$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 = 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.
|
||||
self::assertInternalType('array', $return['events']);
|
||||
self::assertNotCount(0, $return['events']);
|
||||
|
||||
foreach ($return['events'] as $event) {
|
||||
self::assertContains($event, $record->events);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ global $CFG;
|
||||
|
||||
require_once($CFG->dirroot . '/local/webhooks/classes/local/api.php');
|
||||
|
||||
use core\event\course_created;
|
||||
use core\task\manager;
|
||||
use local_webhooks\local\api;
|
||||
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
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
@ -43,10 +64,10 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
||||
|
||||
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::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('{}');
|
||||
$this->resetAfterTest();
|
||||
|
||||
$record = new record();
|
||||
$record->events = ['\core\event\course_viewed'];
|
||||
$record->header = 'application/json';
|
||||
$record->name = 'Example name';
|
||||
$record->point = 'http://example.org/';
|
||||
$record = self::get_random_record();
|
||||
$record->status = false;
|
||||
$record->token = '967b2286-0874-4938-b088-efdbcf8a79bc';
|
||||
|
||||
api::create_service($record);
|
||||
$record->id = api::add_service($record);
|
||||
|
||||
$task = new notify();
|
||||
$task->set_custom_data(['eventname' => '\core\event\course_viewed']);
|
||||
$task->set_custom_data(['eventname' => self::EVENTNAME]);
|
||||
$task->execute();
|
||||
|
||||
self::assertNull($task->debug);
|
||||
@ -92,18 +107,11 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
||||
curl::mock_response('{}');
|
||||
$this->resetAfterTest();
|
||||
|
||||
$record = new record();
|
||||
$record->events = ['\core\event\course_viewed'];
|
||||
$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);
|
||||
$record = self::get_random_record();
|
||||
$record->id = api::add_service($record);
|
||||
|
||||
$task = new notify();
|
||||
$task->set_custom_data(['eventname' => '\core\event\course_viewed']);
|
||||
$task->set_custom_data(['eventname' => self::EVENTNAME]);
|
||||
$task->execute();
|
||||
|
||||
self::assertCount(1, $task->debug);
|
||||
@ -133,15 +141,8 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
||||
|
||||
$generator = self::getDataGenerator();
|
||||
|
||||
$record = new record();
|
||||
$record->events = ['\core\event\course_created'];
|
||||
$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);
|
||||
$record = self::get_random_record();
|
||||
$record->id = api::add_service($record);
|
||||
|
||||
$total = random_int(5, 20);
|
||||
for ($i = 0; $i < $total; $i++) {
|
||||
@ -150,11 +151,9 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
||||
|
||||
$debug = [];
|
||||
foreach (manager::get_adhoc_tasks(notify::class) as $event) {
|
||||
if (!is_object($event)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
self::assertInstanceOf(notify::class, $event);
|
||||
/** @var \local_webhooks\task\notify $event */
|
||||
|
||||
$event->execute();
|
||||
|
||||
if (isset($event->debug) && is_array($event->debug)) {
|
||||
@ -180,25 +179,16 @@ final class local_webhooks_task_testcase extends advanced_testcase {
|
||||
|
||||
$generator = self::getDataGenerator();
|
||||
|
||||
$record = new record();
|
||||
$record->events = ['\core\event\course_created'];
|
||||
$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);
|
||||
$record = self::get_random_record();
|
||||
$record->id = api::add_service($record);
|
||||
|
||||
$course = $generator->create_course();
|
||||
|
||||
$debug = [];
|
||||
foreach (manager::get_adhoc_tasks(notify::class) as $event) {
|
||||
if (!is_object($event)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
self::assertInstanceOf(notify::class, $event);
|
||||
/** @var \local_webhooks\task\notify $event */
|
||||
|
||||
$event->execute();
|
||||
|
||||
if (isset($event->debug) && is_array($event->debug)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user