From e586aa397ede34b8bb8308e5fd6a17b79358df70 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Mon, 13 Sep 2010 09:05:46 +0000 Subject: [PATCH] MDL-19057 improved bit operation tests - now testing placeholders too --- lib/dml/simpletest/testdml.php | 48 +++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/lib/dml/simpletest/testdml.php b/lib/dml/simpletest/testdml.php index b89e6829cb3..dbebc640be3 100755 --- a/lib/dml/simpletest/testdml.php +++ b/lib/dml/simpletest/testdml.php @@ -2249,7 +2249,7 @@ class dml_test extends UnitTestCase { $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); $dbman->create_table($table); - $DB->insert_record($tablename, array('col1' => 3, 'col2' => 2)); + $DB->insert_record($tablename, array('col1' => 3, 'col2' => 10)); $sql = "SELECT ".$DB->sql_bitand(10, 3)." AS res ".$DB->sql_null_from_clause(); $this->assertEqual($DB->get_field_sql($sql), 2); @@ -2277,14 +2277,60 @@ class dml_test extends UnitTestCase { function test_sql_bitor() { $DB = $this->tdb; + $dbman = $DB->get_manager(); + + $table = $this->get_test_table(); + $tablename = $table->getName(); + + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('col1', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0'); + $table->add_field('col2', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0'); + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $dbman->create_table($table); + + $DB->insert_record($tablename, array('col1' => 3, 'col2' => 10)); + $sql = "SELECT ".$DB->sql_bitor(10, 3)." AS res ".$DB->sql_null_from_clause(); $this->assertEqual($DB->get_field_sql($sql), 11); + + $sql = "SELECT id, ".$DB->sql_bitor('col1', 'col2')." AS res FROM {{$tablename}}"; + $result = $DB->get_records_sql($sql); + $this->assertEqual(count($result), 1); + $this->assertEqual(reset($result)->res, 11); + + $sql = "SELECT id, ".$DB->sql_bitor('col1', '?')." AS res FROM {{$tablename}}"; + $result = $DB->get_records_sql($sql, array(10)); + $this->assertEqual(count($result), 1); + $this->assertEqual(reset($result)->res, 11); } function test_sql_bitxor() { $DB = $this->tdb; + $dbman = $DB->get_manager(); + + $table = $this->get_test_table(); + $tablename = $table->getName(); + + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); + $table->add_field('col1', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0'); + $table->add_field('col2', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0'); + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $dbman->create_table($table); + + $DB->insert_record($tablename, array('col1' => 3, 'col2' => 10)); + $sql = "SELECT ".$DB->sql_bitxor(10, 3)." AS res ".$DB->sql_null_from_clause(); $this->assertEqual($DB->get_field_sql($sql), 9); + + $sql = "SELECT id, ".$DB->sql_bitxor('col1', 'col2')." AS res FROM {{$tablename}}"; + $result = $DB->get_records_sql($sql); + $this->assertEqual(count($result), 1); + $this->assertEqual(reset($result)->res, 9); + + $sql = "SELECT id, ".$DB->sql_bitxor('col1', '?')." AS res FROM {{$tablename}}"; + $result = $DB->get_records_sql($sql, array(10)); + $this->assertEqual(count($result), 1); + $this->assertEqual(reset($result)->res, 9); } function test_sql_modulo() {