/** * Validate that, in the special case where runtime is exceeded, the * database logger stores the log file path, even if it does not yet exist */ public function test_dbloggerobjectstorespathwhenruntimeexceeded() { global $CFG, $DB; require_once $CFG->dirroot . '/local/datahub/lib.php'; // Obtain the logging object. $dblogger = new rlip_dblogger_import(); // Set the right logging state. $dblogger->set_log_path('/parentdir/childdir'); $dblogger->signal_maxruntime_exceeded(); // Write out the database record. $dblogger->flush('filename'); // Validation. $select = $DB->sql_compare_text('logpath') . ' = :logpath'; $exists = $DB->record_exists_select(RLIP_LOG_TABLE, $select, array('logpath' => '/parentdir/childdir')); $this->assertTrue($exists); }
/** * Validate that DB logging object correctly persists values and resets its state * when flushing data to the DB */ public function test_version1dbloggingsuccesstrackingstorescorrectvaluesviaapi() { global $CFG, $USER; require_once $CFG->dirroot . '/local/datahub/lib.php'; // Set up the logger object. $logger = new rlip_dblogger_import(); // Provide appropriate times. $logger->set_plugin('plugin'); $logger->set_targetstarttime(1000000000); $logger->set_starttime(1000000001); $logger->set_endtime(1000000002); // Give it one of each "status". $logger->track_success(true, true); $logger->track_success(true, false); $logger->track_success(false, true); $logger->track_success(false, false); // Specify number of db ops. $logger->set_dbops(5); $logger->signal_unmetdependency(); // Validate setup. $this->assertEquals($logger->plugin, 'plugin'); $this->assertEquals($logger->userid, $USER->id); $this->assertEquals($logger->targetstarttime, 1000000000); $this->assertEquals($logger->starttime, 1000000001); $this->assertEquals($logger->endtime, 1000000002); $this->assertEquals($logger->filesuccesses, 1); $this->assertEquals($logger->filefailures, 1); $this->assertEquals($logger->storedsuccesses, 1); $this->assertEquals($logger->storedfailures, 1); $this->assertEquals($logger->dbops, 5); $this->assertEquals($logger->unmetdependency, 1); // Flush. $logger->flush('bogusfilename'); // Validate that the values were correctly persisted. $params = array('plugin' => 'plugin', 'userid' => $USER->id, 'targetstarttime' => 1000000000, 'starttime' => 1000000001, 'endtime' => 1000000002, 'filesuccesses' => 1, 'filefailures' => 1, 'storedsuccesses' => 1, 'storedfailures' => 1, 'dbops' => 5, 'unmetdependency' => 1); $this->assert_record_exists(RLIP_LOG_TABLE, $params); // Validate that the state is reset. $this->assertEquals($logger->plugin, 'plugin'); $this->assertEquals($logger->userid, $USER->id); $this->assertEquals($logger->targetstarttime, 1000000000); $this->assertEquals($logger->starttime, 0); $this->assertEquals($logger->endtime, 0); $this->assertEquals($logger->filesuccesses, 0); $this->assertEquals($logger->filefailures, 0); $this->assertEquals($logger->storedsuccesses, 0); $this->assertEquals($logger->storedfailures, 0); $this->assertEquals($logger->dbops, -1); $this->assertEquals($logger->unmetdependency, 0); }