]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-17020 dml: native pgsql driver - fixing/improving unittests
authorskodak <skodak>
Mon, 27 Oct 2008 12:10:24 +0000 (12:10 +0000)
committerskodak <skodak>
Mon, 27 Oct 2008 12:10:24 +0000 (12:10 +0000)
lib/dml/simpletest/testdml.php

index d2f59e02a16fab470e641586ea30f942100992b0..1373ee88dc1830e82906c9d4f91f482539a3a4e1 100755 (executable)
@@ -55,15 +55,40 @@ class dml_test extends UnitTestCase {
     function test_fix_sql_params() {
         $DB = $this->tdb;
 
+        // Correct table placeholder substitution
+        $sql = "SELECT * FROM {testtable}";
+        $sqlarray = $DB->fix_sql_params($sql);
+        $this->assertEqual("SELECT * FROM {$DB->get_prefix()}testtable", $sqlarray[0]);
+
+        // Conversions of all param types
+        $sql = array();
+        $sql[SQL_PARAMS_NAMED]  = "SELECT * FROM {$DB->get_prefix()}testtable WHERE name = :name, course = :course";
+        $sql[SQL_PARAMS_QM]     = "SELECT * FROM {$DB->get_prefix()}testtable WHERE name = ?, course = ?";
+        $sql[SQL_PARAMS_DOLLAR] = "SELECT * FROM {$DB->get_prefix()}testtable WHERE name = \$1, course = \$2";
+
+        $params = array();
+        $params[SQL_PARAMS_NAMED]  = array('name'=>'first record', 'course'=>1);
+        $params[SQL_PARAMS_QM]     = array('first record', 1);
+        $params[SQL_PARAMS_DOLLAR] = array('first record', 1);
+
+        list($rsql, $rparams, $rtype) = $DB->fix_sql_params($sql[SQL_PARAMS_NAMED], $params[SQL_PARAMS_NAMED]);
+        $this->assertEqual($rsql, $sql[$rtype]);
+        $this->assertEqual($rparams, $params[$rtype]);
+
+        list($rsql, $rparams, $rtype) = $DB->fix_sql_params($sql[SQL_PARAMS_QM], $params[SQL_PARAMS_QM]);
+        $this->assertEqual($rsql, $sql[$rtype]);
+        $this->assertEqual($rparams, $params[$rtype]);
+
+        list($rsql, $rparams, $rtype) = $DB->fix_sql_params($sql[SQL_PARAMS_DOLLAR], $params[SQL_PARAMS_DOLLAR]);
+        $this->assertEqual($rsql, $sql[$rtype]);
+        $this->assertEqual($rparams, $params[$rtype]);
+
+
         // Malformed table placeholder
         $sql = "SELECT * FROM [testtable]";
         $sqlarray = $DB->fix_sql_params($sql);
         $this->assertEqual($sql, $sqlarray[0]);
 
-        // Correct table placeholder substitution
-        $sql = "SELECT * FROM {testtable}";
-        $sqlarray = $DB->fix_sql_params($sql);
-        $this->assertEqual("SELECT * FROM {$DB->get_prefix()}testtable", $sqlarray[0]);
 
         // Mixed param types (colon and dollar)
         $sql = "SELECT * FROM {testtable} WHERE name = :param1, course = \$1";
@@ -128,20 +153,6 @@ class dml_test extends UnitTestCase {
             $this->assertTrue($e instanceof moodle_exception);
         }
 
-        // Correct named param placeholders
-        $sql = "SELECT * FROM {testtable} WHERE name = :name, course = :course";
-        $params = array('name' => 'first record', 'course' => 1);
-        $sqlarray = $DB->fix_sql_params($sql, $params);
-        $this->assertEqual("SELECT * FROM {$DB->get_prefix()}testtable WHERE name = ?, course = ?", $sqlarray[0]);
-        $this->assertEqual(2, count($sqlarray[1]));
-
-        // Correct ? params
-        $sql = "SELECT * FROM {testtable} WHERE name = ?, course = ?";
-        $params = array('first record', 1);
-        $sqlarray = $DB->fix_sql_params($sql, $params);
-        $this->assertEqual("SELECT * FROM {$DB->get_prefix()}testtable WHERE name = ?, course = ?", $sqlarray[0]);
-        $this->assertEqual(2, count($sqlarray[1]));
-
     }
 
     public function testGetTables() {