. /** * Unit tests for lib.php * * @package mod_data * @category phpunit * @copyright 2013 Adrian Greeve * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->dirroot . '/mod/data/lib.php'); /** * Unit tests for lib.php * * @package mod_data * @copyright 2013 Adrian Greeve * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class data_lib_testcase extends advanced_testcase { function test_data_delete_record() { global $DB; $this->resetAfterTest(); // Create a record for deleting. $this->setAdminUser(); $course = $this->getDataGenerator()->create_course(); $record = new stdClass(); $record->course = $course->id; $record->name = "Mod data delete test"; $record->intro = "Some intro of some sort"; $module = $this->getDataGenerator()->create_module('data', $record); $field = data_get_field_new('text', $module); $fielddetail = new stdClass(); $fielddetail->d = $module->id; $fielddetail->mode = 'add'; $fielddetail->type = 'text'; $fielddetail->sesskey = sesskey(); $fielddetail->name = 'Name'; $fielddetail->description = 'Some name'; $field->define_field($fielddetail); $field->insert_field(); $recordid = data_add_record($module); $datacontent = array(); $datacontent['fieldid'] = $field->field->id; $datacontent['recordid'] = $recordid; $datacontent['content'] = 'Asterix'; $contentid = $DB->insert_record('data_content', $datacontent); $cm = get_coursemodule_from_instance('data', $module->id, $course->id); // Check to make sure that we have a database record. $data = $DB->get_records('data', array('id' => $module->id)); $this->assertEquals(1, count($data)); $datacontent = $DB->get_records('data_content', array('id' => $contentid)); $this->assertEquals(1, count($datacontent)); $datafields = $DB->get_records('data_fields', array('id' => $field->field->id)); $this->assertEquals(1, count($datafields)); $datarecords = $DB->get_records('data_records', array('id' => $recordid)); $this->assertEquals(1, count($datarecords)); // Test to see if a failed delete returns false. $result = data_delete_record(8798, $module, $course->id, $cm->id); $this->assertFalse($result); // Delete the record. $result = data_delete_record($recordid, $module, $course->id, $cm->id); // Check that all of the record is gone. $datacontent = $DB->get_records('data_content', array('id' => $contentid)); $this->assertEquals(0, count($datacontent)); $datarecords = $DB->get_records('data_records', array('id' => $recordid)); $this->assertEquals(0, count($datarecords)); // Make sure the function returns true on a successful deletion. $this->assertTrue($result); } }