/** * Test view_course function */ public function test_view_course() { $this->resetAfterTest(); // Course without sections. $course = $this->getDataGenerator()->create_course(array('numsections' => 5), array('createsections' => true)); $this->setAdminUser(); // Redirect events to the sink, so we can recover them later. $sink = $this->redirectEvents(); $result = core_course_external::view_course($course->id, 1); $result = external_api::clean_returnvalue(core_course_external::view_course_returns(), $result); $events = $sink->get_events(); $event = reset($events); // Check the event details are correct. $this->assertInstanceOf('\\core\\event\\course_viewed', $event); $this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(1, $event->other['coursesectionnumber']); $result = core_course_external::view_course($course->id); $result = external_api::clean_returnvalue(core_course_external::view_course_returns(), $result); $events = $sink->get_events(); $event = array_pop($events); $sink->close(); // Check the event details are correct. $this->assertInstanceOf('\\core\\event\\course_viewed', $event); $this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEmpty($event->other); }