diff options
-rw-r--r-- | classes/local/api.php | 12 | ||||
-rw-r--r-- | tests/api_test.php | 30 |
2 files changed, 42 insertions, 0 deletions
diff --git a/classes/local/api.php b/classes/local/api.php index c937aa5..ea70a91 100644 --- a/classes/local/api.php +++ b/classes/local/api.php @@ -188,6 +188,18 @@ final class api { } /** + * Get a total count of existing records. + * + * @return int + * @throws \dml_exception + */ + public static function get_total_count(): int { + global $DB; + + return $DB->count_records(LW_TABLE_SERVICES); + } + + /** * Update an existing record in the database. * * @param \local_webhooks\local\record $service diff --git a/tests/api_test.php b/tests/api_test.php index 955c284..648c7e8 100644 --- a/tests/api_test.php +++ b/tests/api_test.php @@ -307,6 +307,36 @@ final class local_webhooks_api_testcase extends advanced_testcase { } /** + * Testing get a total count of existing records. + * + * @throws \coding_exception + * @throws \dml_exception + */ + public function test_total() { + $this->resetAfterTest(); + + $record = new record(); + $record->header = 'application/json'; + $record->status = true; + $record->token = '967b2286-0874-4938-b088-efdbcf8a79bc'; + $record->events = [ + '\core\event\course_created', + '\core\event\course_deleted', + '\core\event\course_updated', + '\core\event\course_viewed', + ]; + + $total = random_int(5, 20); + for ($i = 0; $i < $total; $i++) { + $record->name = 'Example name #' . $i; + $record->point = 'http://example.org/test_' . $i; + api::create_service($record); + } + + self::assertEquals($total, api::get_total_count()); + } + + /** * Testing of the service update. * * @group local_webhooks |