weekly release 3.2dev
[moodle.git] / mod / data / tests / generator_test.php
CommitLineData
cbdf52ba
PS
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 * PHPUnit data generator tests
19 *
20 * @package mod_data
21 * @category phpunit
22 * @copyright 2012 Petr Skoda {@link http://skodak.org}
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 */
25
26defined('MOODLE_INTERNAL') || die();
27
28
29/**
30 * PHPUnit data generator testcase
31 *
32 * @package mod_data
33 * @category phpunit
34 * @copyright 2012 Petr Skoda {@link http://skodak.org}
35 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
36 */
37class mod_data_generator_testcase extends advanced_testcase {
9bb2b515 38 public function test_generator() {
6b04fdc0 39 global $DB;
cbdf52ba
PS
40
41 $this->resetAfterTest(true);
42
43 $this->assertEquals(0, $DB->count_records('data'));
44
6b04fdc0
PS
45 $course = $this->getDataGenerator()->create_course();
46
cbdf52ba
PS
47 /** @var mod_data_generator $generator */
48 $generator = $this->getDataGenerator()->get_plugin_generator('mod_data');
49 $this->assertInstanceOf('mod_data_generator', $generator);
50 $this->assertEquals('data', $generator->get_modulename());
51
6b04fdc0
PS
52 $generator->create_instance(array('course'=>$course->id));
53 $generator->create_instance(array('course'=>$course->id));
54 $data = $generator->create_instance(array('course'=>$course->id));
cbdf52ba
PS
55 $this->assertEquals(3, $DB->count_records('data'));
56
57 $cm = get_coursemodule_from_instance('data', $data->id);
58 $this->assertEquals($data->id, $cm->instance);
59 $this->assertEquals('data', $cm->modname);
6b04fdc0 60 $this->assertEquals($course->id, $cm->course);
cbdf52ba
PS
61
62 $context = context_module::instance($cm->id);
63 $this->assertEquals($data->cmid, $context->instanceid);
6b04fdc0
PS
64
65 // test gradebook integration using low level DB access - DO NOT USE IN PLUGIN CODE!
66 $data = $generator->create_instance(array('course'=>$course->id, 'assessed'=>1, 'scale'=>100));
67 $gitem = $DB->get_record('grade_items', array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule'=>'data', 'iteminstance'=>$data->id));
68 $this->assertNotEmpty($gitem);
69 $this->assertEquals(100, $gitem->grademax);
70 $this->assertEquals(0, $gitem->grademin);
71 $this->assertEquals(GRADE_TYPE_VALUE, $gitem->gradetype);
72
cbdf52ba
PS
73 }
74}