a10d11a0ad5ffd2bdc1589f21fe0952ec20ba299
[moodle.git] / mod / data / tests / generator_test.php
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/>.
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  */
26 defined('MOODLE_INTERNAL') || die();
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  */
37 class mod_data_generator_testcase extends advanced_testcase {
38     public function test_generator() {
39         global $DB;
41         $this->resetAfterTest(true);
43         $this->assertEquals(0, $DB->count_records('data'));
45         $course = $this->getDataGenerator()->create_course();
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());
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));
55         $this->assertEquals(3, $DB->count_records('data'));
57         $cm = get_coursemodule_from_instance('data', $data->id);
58         $this->assertEquals($data->id, $cm->instance);
59         $this->assertEquals('data', $cm->modname);
60         $this->assertEquals($course->id, $cm->course);
62         $context = context_module::instance($cm->id);
63         $this->assertEquals($data->cmid, $context->instanceid);
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);
73     }
74 }