public function test_delete_all_state()
 {
     global $DB;
     $this->mock_setup();
     $course = (object) array('id' => 13);
     $cm = (object) array('id' => 42, 'course' => 13);
     $c = new completion_info($course);
     // Check it works ok without data in session.
     /** @var $DB PHPUnit_Framework_MockObject_MockObject */
     $DB->expects($this->at(0))->method('delete_records')->with('course_modules_completion', array('coursemoduleid' => 42))->will($this->returnValue(true));
     $c->delete_all_state($cm);
 }
 public function test_delete_all_state()
 {
     global $DB, $SESSION;
     $this->mock_setup();
     $course = (object) array('id' => 13);
     $cm = (object) array('id' => 42, 'course' => 13);
     $c = new completion_info($course);
     // Check it works ok without data in session.
     /** @var $DB PHPUnit_Framework_MockObject_MockObject */
     $DB->expects($this->at(0))->method('delete_records')->with('course_modules_completion', array('coursemoduleid' => 42))->will($this->returnValue(true));
     $c->delete_all_state($cm);
     // Build up a session to check it deletes the right bits from it
     // (and not other bits).
     $SESSION->completioncache = array();
     $SESSION->completioncache[13] = array();
     $SESSION->completioncache[13][42] = 'foo';
     $SESSION->completioncache[13][43] = 'foo';
     $SESSION->completioncache[14] = array();
     $SESSION->completioncache[14][42] = 'foo';
     $DB->expects($this->at(0))->method('delete_records')->with('course_modules_completion', array('coursemoduleid' => 42))->will($this->returnValue(true));
     $c->delete_all_state($cm);
     $this->assertEquals(array(13 => array(43 => 'foo'), 14 => array(42 => 'foo')), $SESSION->completioncache);
 }
 function test_delete_all_state()
 {
     global $DB, $SESSION;
     $course = (object) array('id' => 13);
     $cm = (object) array('id' => 42, 'course' => 13);
     $c = new completion_info($course);
     // Check it works ok without data in session
     $DB->expectAt(0, 'delete_records', array('course_modules_completion', array('coursemoduleid' => 42)));
     $c->delete_all_state($cm);
     // Build up a session to check it deletes the right bits from it
     // (and not other bits)
     $SESSION->completioncache = array();
     $SESSION->completioncache[13] = array();
     $SESSION->completioncache[13][42] = 'foo';
     $SESSION->completioncache[13][43] = 'foo';
     $SESSION->completioncache[14] = array();
     $SESSION->completioncache[14][42] = 'foo';
     $DB->expectAt(1, 'delete_records', array('course_modules_completion', array('coursemoduleid' => 42)));
     $c->delete_all_state($cm);
     $this->assertEqual(array(13 => array(43 => 'foo'), 14 => array(42 => 'foo')), $SESSION->completioncache);
     $DB->tally();
 }