From 9834ef146ed94d5aa873e9c00117591724c32a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= Date: Tue, 29 Jan 2013 10:10:40 +0100 Subject: [PATCH] MDL-37734 add one more recordset isolation test --- lib/dml/tests/dml_test.php | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/dml/tests/dml_test.php b/lib/dml/tests/dml_test.php index 39481ad67cd..b1b367234b0 100644 --- a/lib/dml/tests/dml_test.php +++ b/lib/dml/tests/dml_test.php @@ -4314,6 +4314,35 @@ class dml_testcase extends database_driver_testcase { } $rs1->close(); $this->assertEquals(3, $i); + + // Test nested recordsets isolation without transaction. + $DB->delete_records($tablename); + $DB->insert_record($tablename, array('course'=>1)); + $DB->insert_record($tablename, array('course'=>2)); + $DB->insert_record($tablename, array('course'=>3)); + + $DB->delete_records($tablename2); + $DB->insert_record($tablename2, array('course'=>5)); + $DB->insert_record($tablename2, array('course'=>6)); + $DB->insert_record($tablename2, array('course'=>7)); + $DB->insert_record($tablename2, array('course'=>8)); + + $rs1 = $DB->get_recordset($tablename); + $i = 0; + foreach ($rs1 as $record1) { + $i++; + $rs2 = $DB->get_recordset($tablename2); + $j = 0; + foreach ($rs2 as $record2) { + $DB->set_field($tablename, 'course', $record1->course+1, array('id'=>$record1->id)); + $DB->set_field($tablename2, 'course', $record2->course+1, array('id'=>$record2->id)); + $j++; + } + $rs2->close(); + $this->assertEquals(4, $j); + } + $rs1->close(); + $this->assertEquals(3, $i); } function test_transactions_forbidden() {