From 5b0dba4980a0816e1c92b99a3a4cf6ec221f863f Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Fri, 10 May 2019 14:22:56 +0400 Subject: Added external function get service Signed-off-by: Valentin Popov --- tests/external_test.php | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 tests/external_test.php (limited to 'tests') diff --git a/tests/external_test.php b/tests/external_test.php new file mode 100644 index 0000000..2a9be98 --- /dev/null +++ b/tests/external_test.php @@ -0,0 +1,78 @@ +. + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; + +require_once($CFG->dirroot . '/local/webhooks/externallib.php'); +require_once($CFG->dirroot . '/webservice/tests/helpers.php'); + +use local_webhooks\local\api; +use local_webhooks\local\record; + +/** + * Testing external functions. + * + * @copyright 2019 'Valentin Popov' + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +final class local_webhooks_external_testcase extends externallib_advanced_testcase { + /** + * Testing external get record's data. + * + * @throws \ReflectionException + * @throws \coding_exception + * @throws \dml_exception + * @throws \invalid_response_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); + + $return = local_webhooks_external::get_service($record->id); + $return = external_api::clean_returnvalue(local_webhooks_external::get_service_returns(), $return); + self::assertInternalType('array', $return); + + // Testing the main fields. + self::assertEquals($record->header, $return['header']); + self::assertEquals($record->id, $return['id']); + self::assertEquals($record->name, $return['name']); + self::assertEquals($record->point, $return['point']); + self::assertEquals($record->status, (int) $return['status']); + self::assertEquals($record->token, $return['token']); + + // 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); + } + } +} \ No newline at end of file -- cgit v1.2.3