PHPUnit_TestCase($name); } function setUp() { require dirname(__FILE__) . '/_config.inc.php'; require_once '../lib/RecordVersion.inc.php'; require_once '../lib/Auth_SQL.inc.php'; $this->Auth_SQL =& new Auth_SQL('testauth'); $this->Auth_SQL->setParam(array( 'db_table' => 'test_user_tbl', 'db_primary_key' => 'user_id', 'db_login_table' => 'test_login_tbl', 'login_url' => '/login.php', 'blocking' => true )); // Use fresh user table. $this->Auth_SQL->initDB(true); // Insert test data. DB::query(" INSERT INTO test_user_tbl ( username, userpass, first_name, last_name, email, user_type ) VALUES ( 'testuser', md5('testpass'), 'John', 'Doe', 'john@example.com', 'admin' ) "); $this->Auth_SQL->login('testuser', 'testpass'); $this->RecordVersion =& RecordVersion::getInstance($this->Auth_SQL); $this->RecordVersion->setParam(array('db_table' => 'test_version_tbl')); // Use fresh version table. $this->RecordVersion->initDB(true); } function tearDown() { unset($this->RecordVersion); unset($this->Auth_SQL); DB::query("DROP TABLE IF EXISTS test_user_tbl"); DB::query("DROP TABLE IF EXISTS test_login_tbl"); DB::query("DROP TABLE IF EXISTS test_version_tbl"); } function test_getinstance() { $result = RecordVersion::getinstance($this->Auth_SQL); $this->assertTrue($result && is_a($result, 'RecordVersion')); } function test_setparam() { $this->RecordVersion->setparam(array('var'=>'val')); } function test_getparam() { $this->RecordVersion->getparam('var'); } function test_create() { $result = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user'); $this->assertTrue($result); } function test_restore() { $current = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1'); $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user'); $versioned = $this->RecordVersion->getData($version_id); $result = $this->RecordVersion->restore($version_id); $restored = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1'); $this->assertTrue(is_array($result), 'Restore did not return array.'); $this->assertTrue($current === $versioned && $versioned === $restored, 'Restored version does not match original.'); } function test_deleteold() { // Creat 3 test versions. $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user'); $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user'); $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user'); $a = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1'); $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1'); $b = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1'); $this->RecordVersion->setparam(array('max_qty'=>2)); $this->RecordVersion->setparam(array('min_qty'=>1)); $this->RecordVersion->setparam(array('min_days'=>0)); $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1'); $c = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1'); $this->RecordVersion->setparam(array('max_qty'=>0)); $this->RecordVersion->setparam(array('min_qty'=>0)); $this->RecordVersion->setparam(array('min_days'=>0)); $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1'); $d = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1'); $this->assertTrue(sizeof($a) == 3, 'A is wrong'); $this->assertTrue(sizeof($b) == 3, 'B is wrong'); $this->assertTrue(sizeof($c) == 1, 'C is wrong'); $this->assertTrue(sizeof($d) == 0, 'D is wrong'); } function test_getlist() { $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user'); $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user'); $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user'); $result = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1'); $this->assertTrue(is_array($result) && !empty($result)); } function test_getverson() { $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user'); $result = $this->RecordVersion->getverson($version_id); $this->assertTrue(is_array($result) && !empty($result)); } function test_getdata() { $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user'); $result = $this->RecordVersion->getdata($version_id); $this->assertTrue(is_array($result) && !empty($result)); } function test_getcurrent() { $result = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1'); $this->assertTrue(is_array($result) && !empty($result)); } } // Running the test. $suite = new PHPUnit_TestSuite('RecordVersionTest'); $result = PHPUnit::run($suite); echo $result->toString(); ?>