From c7fcce98d00b715e0439e052fbba4e732fa386d3 Mon Sep 17 00:00:00 2001 From: Cliff Casey Date: Thu, 24 Oct 2024 15:32:08 -0400 Subject: [PATCH] discussion subscription tests --- .../discussion_subscription_deleted.php | 3 +- .../discussion_subcription_created/data.json | 20 +++++ .../discussion_subscription_created_test.php | 72 +++++++++++++++++ .../discussion_subcription_created/event.json | 11 +++ .../statements.json | 80 +++++++++++++++++++ .../discussion_subcription_deleted/data.json | 20 +++++ .../discussion_subscription_deleted_test.php | 70 ++++++++++++++++ .../discussion_subcription_deleted/event.json | 11 +++ .../statements.json | 80 +++++++++++++++++++ 9 files changed, 366 insertions(+), 1 deletion(-) create mode 100644 tests/mod_forum/discussion_subcription_created/data.json create mode 100644 tests/mod_forum/discussion_subcription_created/discussion_subscription_created_test.php create mode 100644 tests/mod_forum/discussion_subcription_created/event.json create mode 100644 tests/mod_forum/discussion_subcription_created/statements.json create mode 100644 tests/mod_forum/discussion_subcription_deleted/data.json create mode 100644 tests/mod_forum/discussion_subcription_deleted/discussion_subscription_deleted_test.php create mode 100644 tests/mod_forum/discussion_subcription_deleted/event.json create mode 100644 tests/mod_forum/discussion_subcription_deleted/statements.json diff --git a/src/transformer/events/mod_forum/discussion_subscription_deleted.php b/src/transformer/events/mod_forum/discussion_subscription_deleted.php index 817a52723..379331cbf 100644 --- a/src/transformer/events/mod_forum/discussion_subscription_deleted.php +++ b/src/transformer/events/mod_forum/discussion_subscription_deleted.php @@ -58,7 +58,8 @@ function discussion_subscription_deleted(array $config, \stdClass $event) { 'contextActivities' => [ 'parent' => utils\context_activities\get_parent( $config, - $event->contextinstanceid + $event->contextinstanceid, + true ), 'category' => [ utils\get_activity\site($config), diff --git a/tests/mod_forum/discussion_subcription_created/data.json b/tests/mod_forum/discussion_subcription_created/data.json new file mode 100644 index 000000000..dd84aa11f --- /dev/null +++ b/tests/mod_forum/discussion_subcription_created/data.json @@ -0,0 +1,20 @@ +{ + "modules": [ + { + "id": 1, + "name": "forum" + } + ], + "forum": [ + { + "id": 1, + "name": "test_forum_name" + } + ], + "forum_discussions": [ + { + "id": 1, + "name": "test_forum_discussion_name" + } + ] +} diff --git a/tests/mod_forum/discussion_subcription_created/discussion_subscription_created_test.php b/tests/mod_forum/discussion_subcription_created/discussion_subscription_created_test.php new file mode 100644 index 000000000..2902eeb77 --- /dev/null +++ b/tests/mod_forum/discussion_subcription_created/discussion_subscription_created_test.php @@ -0,0 +1,72 @@ +. + +namespace logstore_xapi\mod_forum\discussion_created; + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; + +require_once($CFG->dirroot . '/admin/tool/log/store/xapi/tests/xapi_test_case.php'); + +/** + * Unit test for mod_forum discussion created event. + * + * @package logstore_xapi + * @copyright Jerret Fowler + * Ryan Smith + * David Pesce + * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class discussion_subscription_created_test extends \logstore_xapi\xapi_test_case { + + /** + * Retrieve the directory of the unit test. + * + * @return string + */ + protected function get_test_dir() { + return __DIR__; + } + + /** + * Retrieve the plugin type being tested. + * + * @return string + */ + protected function get_plugin_type() { + return "mod"; + } + + /** + * Retrieve the plugin name being tested. + * + * @return string + */ + protected function get_plugin_name() { + return "forum"; + } + + /** + * Appease auto-detecting of test cases. xapi_test_case has default test cases. + * + * @covers ::discussion_created + * @return void + */ + public function test_init() { + + } +} diff --git a/tests/mod_forum/discussion_subcription_created/event.json b/tests/mod_forum/discussion_subcription_created/event.json new file mode 100644 index 000000000..71e0bf2b1 --- /dev/null +++ b/tests/mod_forum/discussion_subcription_created/event.json @@ -0,0 +1,11 @@ +{ + "id": 1, + "userid": 1, + "courseid": 1, + "timecreated": 1433946701, + "objecttable": "forum", + "objectid": 1, + "contextinstanceid": 1, + "other": "a:2:{s:10:\"discussion\";i:1;s:7:\"forumid\";i:1;}", + "eventname": "\\mod_forum\\event\\discussion_subscription_created" +} diff --git a/tests/mod_forum/discussion_subcription_created/statements.json b/tests/mod_forum/discussion_subcription_created/statements.json new file mode 100644 index 000000000..77d0bb9d2 --- /dev/null +++ b/tests/mod_forum/discussion_subcription_created/statements.json @@ -0,0 +1,80 @@ +[ + { + "actor": { + "name": "test_fullname", + "account": { + "homePage": "http://www.example.org", + "name": "1" + } + }, + "verb": { + "id": "https://xapi.edlm/profiles/edlm-lms/concepts/verbs/subscribed", + "display": { + "en": "Subscribed" + } + }, + "object": { + "id": "http://www.example.org/mod/forum/discuss.php?d=1", + "definition": { + "type": "http://id.tincanapi.com/activitytype/discussion", + "name": { + "en": "test_forum_discussion_name" + } + } + }, + "context": { + "language": "en", + "extensions": { + "http://lrs.learninglocker.net/define/extensions/info": { + "http://moodle.org": "1.0.0", + "https://github.com/xAPI-vle/moodle-logstore_xapi": "0.0.0-development", + "event_name": "\\mod_forum\\event\\discussion_subscription_created", + "event_function": "\\src\\transformer\\events\\mod_forum\\discussion_subscription_created" + } + }, + "contextActivities": { + "parent": [ + { + "id": "http://www.example.org/mod/forum/view.php?id=1", + "definition": { + "type": "https://xapi.edlm/profiles/edlm-lms/concepts/activity-types/forum", + "name": { + "en": "test_forum_name" + } + } + }, + { + "id": "http://www.example.org/course/section.php?id=1", + "objectType": "Activity", + "definition": { + "name": { + "en": "test_name Section 0" + }, + "type": "http://id.tincanapi.com/activitytype/section" + } + }, + { + "id": "http://www.example.org/course/view.php?id=1", + "definition": { + "type": "https://w3id.org/xapi/cmi5/activitytype/course", + "name": { + "en": "test_name" + } + } + } + ], + "category": [ + { + "id": "http://www.example.org", + "definition": { + "type": "http://id.tincanapi.com/activitytype/lms", + "name": { + "en": "test_name" + } + } + } + ] + } + } + } +] diff --git a/tests/mod_forum/discussion_subcription_deleted/data.json b/tests/mod_forum/discussion_subcription_deleted/data.json new file mode 100644 index 000000000..dd84aa11f --- /dev/null +++ b/tests/mod_forum/discussion_subcription_deleted/data.json @@ -0,0 +1,20 @@ +{ + "modules": [ + { + "id": 1, + "name": "forum" + } + ], + "forum": [ + { + "id": 1, + "name": "test_forum_name" + } + ], + "forum_discussions": [ + { + "id": 1, + "name": "test_forum_discussion_name" + } + ] +} diff --git a/tests/mod_forum/discussion_subcription_deleted/discussion_subscription_deleted_test.php b/tests/mod_forum/discussion_subcription_deleted/discussion_subscription_deleted_test.php new file mode 100644 index 000000000..8c5441482 --- /dev/null +++ b/tests/mod_forum/discussion_subcription_deleted/discussion_subscription_deleted_test.php @@ -0,0 +1,70 @@ +. + +namespace logstore_xapi\mod_forum\discussion_created; + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; + +require_once($CFG->dirroot . '/admin/tool/log/store/xapi/tests/xapi_test_case.php'); + +/** + * Unit test for mod_forum discussion created event. + * + * @package logstore_xapi + * @copyright Cliff Casey + * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class discussion_subscription_deleted_test extends \logstore_xapi\xapi_test_case { + + /** + * Retrieve the directory of the unit test. + * + * @return string + */ + protected function get_test_dir() { + return __DIR__; + } + + /** + * Retrieve the plugin type being tested. + * + * @return string + */ + protected function get_plugin_type() { + return "mod"; + } + + /** + * Retrieve the plugin name being tested. + * + * @return string + */ + protected function get_plugin_name() { + return "forum"; + } + + /** + * Appease auto-detecting of test cases. xapi_test_case has default test cases. + * + * @covers ::discussion_created + * @return void + */ + public function test_init() { + + } +} diff --git a/tests/mod_forum/discussion_subcription_deleted/event.json b/tests/mod_forum/discussion_subcription_deleted/event.json new file mode 100644 index 000000000..5a7f9cf07 --- /dev/null +++ b/tests/mod_forum/discussion_subcription_deleted/event.json @@ -0,0 +1,11 @@ +{ + "id": 1, + "userid": 1, + "courseid": 1, + "timecreated": 1433946701, + "objecttable": "forum", + "objectid": 1, + "contextinstanceid": 1, + "other": "a:2:{s:10:\"discussion\";i:1;s:7:\"forumid\";i:1;}", + "eventname": "\\mod_forum\\event\\discussion_subscription_deleted" +} diff --git a/tests/mod_forum/discussion_subcription_deleted/statements.json b/tests/mod_forum/discussion_subcription_deleted/statements.json new file mode 100644 index 000000000..e63ebbdd6 --- /dev/null +++ b/tests/mod_forum/discussion_subcription_deleted/statements.json @@ -0,0 +1,80 @@ +[ + { + "actor": { + "name": "test_fullname", + "account": { + "homePage": "http://www.example.org", + "name": "1" + } + }, + "verb": { + "id": "https://xapi.edlm/profiles/edlm-lms/concepts/verbs/unsubscribed", + "display": { + "en": "Unsubscribed" + } + }, + "object": { + "id": "http://www.example.org/mod/forum/discuss.php?d=1", + "definition": { + "type": "http://id.tincanapi.com/activitytype/discussion", + "name": { + "en": "test_forum_discussion_name" + } + } + }, + "context": { + "language": "en", + "extensions": { + "http://lrs.learninglocker.net/define/extensions/info": { + "http://moodle.org": "1.0.0", + "https://github.com/xAPI-vle/moodle-logstore_xapi": "0.0.0-development", + "event_name": "\\mod_forum\\event\\discussion_subscription_deleted", + "event_function": "\\src\\transformer\\events\\mod_forum\\discussion_subscription_deleted" + } + }, + "contextActivities": { + "parent": [ + { + "id": "http://www.example.org/mod/forum/view.php?id=1", + "definition": { + "type": "https://xapi.edlm/profiles/edlm-lms/concepts/activity-types/forum", + "name": { + "en": "test_forum_name" + } + } + }, + { + "id": "http://www.example.org/course/section.php?id=1", + "objectType": "Activity", + "definition": { + "name": { + "en": "test_name Section 0" + }, + "type": "http://id.tincanapi.com/activitytype/section" + } + }, + { + "id": "http://www.example.org/course/view.php?id=1", + "definition": { + "type": "https://w3id.org/xapi/cmi5/activitytype/course", + "name": { + "en": "test_name" + } + } + } + ], + "category": [ + { + "id": "http://www.example.org", + "definition": { + "type": "http://id.tincanapi.com/activitytype/lms", + "name": { + "en": "test_name" + } + } + } + ] + } + } + } +]