. */ /** * Doctrine_AuditLog_TestCase * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 * @version $Revision$ */ class Doctrine_AuditLog_TestCase extends Doctrine_UnitTestCase { public function prepareData() { } public function prepareTables() { $this->tables = array('Versionable'); parent::prepareTables(); } public function testVersionTableSqlReturnsProperQuery() { $table = $this->conn->getTable('Versionable'); $auditLog = $table->getAuditLog(); $auditLog->audit(); $entity = new Versionable(); $entity->name = 'zYne'; $entity->save(); $this->assertEqual($entity->version, 1); $entity->name = 'zYne 2'; $entity->save(); $this->assertEqual($entity->version, 2); $entity->delete(); $this->assertEqual($entity->version, 3); $entity->revert(2); $this->assertEqual($entity->name, 'zYne 2'); } public function testUpdateTriggerSqlReturnsProperQuery() { $table = $this->conn->getTable('User'); $auditLog = new Doctrine_AuditLog($table); $sql = $auditLog->updateTriggerSql($table); $this->assertEqual($sql, 'CREATE TRIGGER entity_dut UPDATE ON entity BEGIN INSERT INTO entity_dvt (id, name, loginname, password, type, created, updated, email_id) VALUES (old.id, old.name, old.loginname, old.password, old.type, old.created, old.updated, old.email_id); END;'); } public function testDeleteTriggerSqlReturnsProperQuery() { $table = $this->conn->getTable('User'); $auditLog = new Doctrine_AuditLog($table); $sql = $auditLog->deleteTriggerSql($table); $this->assertEqual($sql, 'CREATE TRIGGER entity_ddt BEFORE DELETE ON entity BEGIN INSERT INTO entity_dvt (id, name, loginname, password, type, created, updated, email_id) VALUES (old.id, old.name, old.loginname, old.password, old.type, old.created, old.updated, old.email_id); END;'); } } class Versionable extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('name', 'string'); $this->hasColumn('version', 'integer'); } public function setUp() { } }