]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-21015 migrating conditionlib test from FakeDBUnitTestCase to UnitTestCaseUsingDat...
authorEloy Lafuente <stronk7@moodle.org>
Tue, 1 Dec 2009 22:31:22 +0000 (22:31 +0000)
committerEloy Lafuente <stronk7@moodle.org>
Tue, 1 Dec 2009 22:31:22 +0000 (22:31 +0000)
lib/simpletest/testconditionlib.php

index c7b45fa49d3528753af3fb1558bbc9bdeee5c47e..da837f9214ca4e42a30de96b65fc5f9f6fd7dfec 100644 (file)
@@ -5,25 +5,57 @@ if (!defined('MOODLE_INTERNAL')) {
 
 require_once($CFG->dirroot . '/lib/conditionlib.php');
 
-class conditionlib_test extends FakeDBUnitTestCase {
+class conditionlib_test extends UnitTestCaseUsingDatabase {
     public static $includecoverage = array('lib/conditionlib.php');
-    var $oldcfg;
+
+    public $conditionlib_tables = array(
+               'lib' => array(
+                   'context', 'capabilities', 'role',
+                   'role_capabilities', 'role_assignments',
+                   'course_categories', 'course',
+                   'modules',
+                   'course_sections', 'course_modules',
+                   'course_modules_availability',
+                   'course_modules_completion',
+                   'grade_items', 'grade_grades'),
+               'mod/resource' => array(
+                   'resource'));
+    public $oldcfg;
 
     public function setUp() {
-        parent::setUp();
         global $CFG;
+        parent::setUp();
         $this->oldcfg=clone $CFG;
         $CFG->enableavailability=true;
         $CFG->enablecompletion=true;
+
+        $this->switch_to_test_db(); // All operations until end of test method will happen in test DB
+
+        foreach ($this->conditionlib_tables as $dir => $tables) {
+            $this->create_test_tables($tables, $dir); // Create tables
+        }
+        $this->fill_records(); // Add common stuff needed by various test methods
     }
 
     /**
      * Method called after each test method. Doesn't do anything extraordinary except restore the global $DB to the real one.
      */
     public function tearDown() {
+        global $CFG;
         $CFG->enableavailability=$this->oldcfg->enableavailability;
         $CFG->enablecompletion=$this->oldcfg->enablecompletion;
-        parent::tearDown();
+        parent::tearDown(); // All the test tables created in setUp will be dropped by this
+    }
+
+    private function fill_records() {
+        global $DB;
+
+        // We need the resource modules record available
+        $DB->insert_record('modules', (object)array('name' => 'resource'));
+
+        // We (get_fast_modinfo) need some capabilities present
+        $DB->insert_record('capabilities', (object)array('name' => 'moodle/course:viewhiddenactivities',
+                                                         'contextlevel' => CONTEXT_COURSE));
     }
 
     function test_constructor() {
@@ -89,7 +121,7 @@ class conditionlib_test extends FakeDBUnitTestCase {
 
     private function make_course() {
         global $DB;
-        $categoryid=$DB->insert_record('course_categories',(object)array());
+        $categoryid=$DB->insert_record('course_categories',(object)array('name'=>'conditionlibtest'));
         return $DB->insert_record('course',(object)array(
             'fullname'=>'Condition test','shortname'=>'CT1',
             'category'=>$categoryid,'enablecompletion'=>1));