weekly release 4.0dev
[moodle.git] / mod / quiz / tests / generator / behat_mod_quiz_generator.php
CommitLineData
285c7036
TH
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 'datagenerator' => 'override',
41 'required' => ['quiz', 'group'],
42 'switchids' => ['quiz' => 'quiz', 'group' => 'groupid'],
43 ],
44 'user overrides' => [
45 'datagenerator' => 'override',
46 'required' => ['quiz', 'user'],
47 'switchids' => ['quiz' => 'quiz', 'user' => 'userid'],
48 ],
49 ];
50 }
51
52 /**
53 * Look up the id of a quiz from its name.
54 *
55 * @param string $quizname the quiz name, for example 'Test quiz'.
56 * @return int corresponding id.
57 */
58 protected function get_quiz_id(string $quizname): int {
59 global $DB;
60
61 if (!$id = $DB->get_field('quiz', 'id', ['name' => $quizname])) {
62 throw new Exception('There is no quiz with name "' . $quizname . '" does not exist');
63 }
64 return $id;
65 }
66}