source: branches/2.0singleton/tests/RecordVersionTest.php @ 541

Last change on this file since 541 was 130, checked in by scdev, 18 years ago

finished updating DB:: to $db->

File size: 6.2 KB
Line 
1<?php
2/**
3 * PHPUnit test case for RecordVersion
4 *
5 * The method skeletons below need to be filled in with
6 * real data so that the tests will run correctly. Replace
7 * all EXPECTED_VAL and PARAM strings with real data.
8 *
9 * Created with PHPUnit_Skeleton on 2005-08-09
10 */
11require_once 'PHPUnit.php';
12class RecordVersionTest extends PHPUnit_TestCase {
13
14    var $RecordVersion;
15    var $Auth_SQL;
16
17    function RecordVersionTest($name)
18    {
19        $this->PHPUnit_TestCase($name);
20    }
21
22    function setUp()
23    {
24        $db =& DB::getInstance();
25   
26        require dirname(__FILE__) . '/_config.inc.php';
27        require_once '../lib/RecordVersion.inc.php';
28
29        require_once '../lib/Auth_SQL.inc.php';
30        $this->Auth_SQL =& new Auth_SQL('testauth');
31        $this->Auth_SQL->setParam(array(
32            'db_table'          => 'test_user_tbl',
33            'db_primary_key'    => 'user_id',
34            'db_login_table'    => 'test_login_tbl',
35            'login_url'         => '/login.php',
36            'blocking'          => true
37        ));
38
39        // Use fresh user table.
40        $this->Auth_SQL->initDB(true);
41
42        // Insert test data.
43        $db->query("
44            INSERT INTO test_user_tbl (
45                username,
46                userpass,
47                first_name,
48                last_name,
49                email,
50                user_type
51            ) VALUES (
52                'testuser',
53                md5('testpass'),
54                'John',
55                'Doe',
56                'john@example.com',
57                'admin'
58            )
59        ");
60
61        $this->Auth_SQL->login('testuser', 'testpass');
62
63        $this->RecordVersion =& RecordVersion::getInstance($this->Auth_SQL);
64        $this->RecordVersion->setParam(array('db_table' => 'test_version_tbl'));
65
66        // Use fresh version table.
67        $this->RecordVersion->initDB(true);
68    }
69
70    function tearDown()
71    {
72        $db =& DB::getInstance();
73   
74        unset($this->RecordVersion);
75        unset($this->Auth_SQL);
76        $db->query("DROP TABLE IF EXISTS test_user_tbl");
77        $db->query("DROP TABLE IF EXISTS test_login_tbl");
78        $db->query("DROP TABLE IF EXISTS test_version_tbl");
79    }
80
81    function test_getinstance()
82    {
83        $result = RecordVersion::getinstance($this->Auth_SQL);
84        $this->assertTrue($result && is_a($result, 'RecordVersion'));
85    }
86
87    function test_setparam()
88    {
89        $this->RecordVersion->setparam(array('var'=>'val'));
90    }
91
92    function test_getparam()
93    {
94        $this->RecordVersion->getparam('var');
95    }
96
97    function test_create()
98    {
99        $result = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
100        $this->assertTrue($result);
101    }
102
103    function test_restore()
104    {
105        $current = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1');
106        $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
107        $versioned = $this->RecordVersion->getData($version_id);
108        $result = $this->RecordVersion->restore($version_id);
109        $restored = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1');
110        $this->assertTrue(is_array($result), 'Restore did not return array.');
111        $this->assertTrue($current === $versioned && $versioned === $restored, 'Restored version does not match original.');
112    }
113
114    function test_deleteold()
115    {
116        // Creat 3 test versions.
117        $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user');
118        $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user');
119        $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user');
120
121        $a = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
122
123        $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1');
124        $b = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
125
126        $this->RecordVersion->setparam(array('max_qty'=>2));
127        $this->RecordVersion->setparam(array('min_qty'=>1));
128        $this->RecordVersion->setparam(array('min_days'=>0));
129        $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1');
130        $c = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
131
132        $this->RecordVersion->setparam(array('max_qty'=>0));
133        $this->RecordVersion->setparam(array('min_qty'=>0));
134        $this->RecordVersion->setparam(array('min_days'=>0));
135        $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1');
136        $d = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
137
138        $this->assertTrue(sizeof($a) == 3, 'A is wrong');
139        $this->assertTrue(sizeof($b) == 3, 'B is wrong');
140        $this->assertTrue(sizeof($c) == 1, 'C is wrong');
141        $this->assertTrue(sizeof($d) == 0, 'D is wrong');
142    }
143
144    function test_getlist()
145    {
146        $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user');
147        $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user');
148        $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user');
149        $result = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
150        $this->assertTrue(is_array($result) && !empty($result));
151    }
152
153    function test_getverson()
154    {
155        $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
156        $result = $this->RecordVersion->getverson($version_id);
157        $this->assertTrue(is_array($result) && !empty($result));
158    }
159
160    function test_getdata()
161    {
162        $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
163        $result = $this->RecordVersion->getdata($version_id);
164        $this->assertTrue(is_array($result) && !empty($result));
165    }
166
167    function test_getcurrent()
168    {
169        $result = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1');
170        $this->assertTrue(is_array($result) && !empty($result));
171    }
172
173}
174// Running the test.
175$suite = new PHPUnit_TestSuite('RecordVersionTest');
176$result = PHPUnit::run($suite);
177echo $result->toString();
178?>
Note: See TracBrowser for help on using the repository browser.