From 9408170cb38372cb288b0765eac12b72d66252fd Mon Sep 17 00:00:00 2001 From: Mark Nielsen Date: Tue, 12 Aug 2014 08:53:56 -0700 Subject: [PATCH] MDL-46051 mod_lti: Fixing errors in unknown_service_api_called class Also adding unit tests. --- .../event/unknown_service_api_called.php | 9 +-- .../event/unknown_service_api_called_test.php | 77 +++++++++++++++++++ 2 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 mod/lti/tests/event/unknown_service_api_called_test.php diff --git a/mod/lti/classes/event/unknown_service_api_called.php b/mod/lti/classes/event/unknown_service_api_called.php index 84ce864c52b..370d3cc7b03 100644 --- a/mod/lti/classes/event/unknown_service_api_called.php +++ b/mod/lti/classes/event/unknown_service_api_called.php @@ -38,7 +38,7 @@ class unknown_service_api_called extends \core\event\base { /** * Set method for legacy data. * - * @param stdClass $data legacy event data. + * @param \stdClass $data legacy event data. */ public function set_legacy_data($data) { // This function is not used and will be removed in 2.7. @@ -54,8 +54,8 @@ class unknown_service_api_called extends \core\event\base { if ($this->is_restored()) { throw new \coding_exception('Function get_message_data() can not be used on restored events.'); } - $data = (object)$this->eventdata['other']; - $data->xml = new SimpleXMLElement($data->rawbody); + $data = (object)$this->data['other']; + $data->xml = new \SimpleXMLElement($data->rawbody); return $data; } @@ -63,10 +63,9 @@ class unknown_service_api_called extends \core\event\base { * Init method. */ protected function init() { - $this->data['objecttable'] = 'lti'; $this->data['crud'] = 'r'; $this->data['level'] = self::LEVEL_OTHER; - $this->data['context'] = \context_system::instance(); + $this->context = \context_system::instance(); } /** diff --git a/mod/lti/tests/event/unknown_service_api_called_test.php b/mod/lti/tests/event/unknown_service_api_called_test.php new file mode 100644 index 00000000000..64eb2e6f5c9 --- /dev/null +++ b/mod/lti/tests/event/unknown_service_api_called_test.php @@ -0,0 +1,77 @@ +. + +/** + * Unknown service API called event tests + * + * @package mod_lti + * @copyright Copyright (c) 2012 Moodlerooms Inc. (http://www.moodlerooms.com) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +use mod_lti\event\unknown_service_api_called; + +/** + * Unknown service API called event tests + * + * @package mod_lti + * @copyright Copyright (c) 2012 Moodlerooms Inc. (http://www.moodlerooms.com) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class mod_lti_event_unknown_service_api_called_test extends advanced_testcase { + public function test_create_event() { + $event = unknown_service_api_called::create(); + $this->assertInstanceOf('\mod_lti\event\unknown_service_api_called', $event); + } + + public function test_event_context() { + $event = unknown_service_api_called::create(); + $this->assertEquals(context_system::instance(), $event->get_context()); + } + + public function test_trigger_event() { + $event = unknown_service_api_called::create(); + + $sink = $this->redirectEvents(); + $event->trigger(); + $events = $sink->get_events(); + $this->assertCount(1, $events); + } + + public function test_get_message_data() { + $xml = << + + baz + +XML; + + /** @var unknown_service_api_called $event */ + $event = unknown_service_api_called::create( + array('other' => array('rawbody' => $xml, 'foo' => 'bar')) + ); + $data = $event->get_message_data(); + + $this->assertInstanceOf('stdClass', $data); + $this->assertCount(3, get_object_vars($data)); + $this->assertEquals('bar', $data->foo); + $this->assertEquals($xml, $data->rawbody); + $this->assertInstanceOf('SimpleXMLElement', $data->xml); + $this->assertXmlStringEqualsXmlString($xml, $data->xml->asXML()); + } +} \ No newline at end of file