weekly release 4.0dev
[moodle.git] / mod / quiz / tests / generator / behat_mod_quiz_generator.php
... / ...
CommitLineData
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 * Behat data generator for mod_quiz.
19 *
20 * @package mod_quiz
21 * @category test
22 * @copyright 2019 The Open University
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 */
25
26defined('MOODLE_INTERNAL') || die();
27
28
29/**
30 * Behat data generator for mod_quiz.
31 *
32 * @copyright 2019 The Open University
33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34 */
35class behat_mod_quiz_generator extends behat_generator_base {
36
37 protected function get_creatable_entities(): array {
38 return [
39 'group overrides' => [
40 'singular' => 'group override',
41 'datagenerator' => 'override',
42 'required' => ['quiz', 'group'],
43 'switchids' => ['quiz' => 'quiz', 'group' => 'groupid'],
44 ],
45 'user overrides' => [
46 'singular' => 'user override',
47 'datagenerator' => 'override',
48 'required' => ['quiz', 'user'],
49 'switchids' => ['quiz' => 'quiz', 'user' => 'userid'],
50 ],
51 ];
52 }
53
54 /**
55 * Look up the id of a quiz from its name.
56 *
57 * @param string $quizname the quiz name, for example 'Test quiz'.
58 * @return int corresponding id.
59 */
60 protected function get_quiz_id(string $quizname): int {
61 global $DB;
62
63 if (!$id = $DB->get_field('quiz', 'id', ['name' => $quizname])) {
64 throw new Exception('There is no quiz with name "' . $quizname . '" does not exist');
65 }
66 return $id;
67 }
68}