MDL-50015 mod_imscp: New WS mod_imscp_view_imscp
[moodle.git] / mod / book / tool / exportimscp / tests / events_test.php
CommitLineData
7f6e3eef
FM
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * Events tests.
19 *
20 * @package booktool_exportimscp
21 * @category phpunit
22 * @copyright 2013 Frédéric Massart
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 */
25
26defined('MOODLE_INTERNAL') || die();
27global $CFG;
28
29/**
30 * Events tests class.
31 *
32 * @package booktool_exportimscp
33 * @category phpunit
34 * @copyright 2013 Frédéric Massart
35 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
36 */
37class booktool_exportimscp_events_testcase extends advanced_testcase {
38
39 public function setUp() {
40 $this->resetAfterTest();
41 }
42
43 public function test_book_exported() {
44 // There is no proper API to call to test the event, so what we are
45 // doing here is simply making sure that the events returns the right information.
46
47 $course = $this->getDataGenerator()->create_course();
48 $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
ef2a9ece 49 $context = context_module::instance($book->cmid);
7f6e3eef 50
ef2a9ece 51 $event = \booktool_exportimscp\event\book_exported::create_from_book($book, $context);
7f6e3eef
FM
52
53 // Triggering and capturing the event.
54 $sink = $this->redirectEvents();
55 $event->trigger();
56 $events = $sink->get_events();
57 $this->assertCount(1, $events);
58 $event = reset($events);
59
60 // Checking that the event contains the expected values.
61 $this->assertInstanceOf('\booktool_exportimscp\event\book_exported', $event);
62 $this->assertEquals(context_module::instance($book->cmid), $event->get_context());
63 $this->assertEquals($book->id, $event->objectid);
64 $expected = array($course->id, 'book', 'exportimscp', 'tool/exportimscp/index.php?id=' . $book->cmid,
65 $book->id, $book->cmid);
66 $this->assertEventLegacyLogData($expected, $event);
623a32e5 67 $this->assertEventContextNotUsed($event);
7f6e3eef
FM
68 }
69
70}