| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 lmb_require('limb/dbal/src/lmbSimpleDb.class.php'); 10 lmb_require('limb/dbal/src/dump/lmbSQLDumpLoader.class.php'); 11 12 abstract class lmbSQLDumpLoaderTestBase extends UnitTestCase 13 { 14 var $db; 15 var $conn; 16 var $file_path; 17 18 function setUp() 19 { 20 $toolkit = lmbToolkit :: instance(); 21 $this->conn = $toolkit->getDefaultDbConnection(); 22 $this->db = new lmbSimpleDb($this->conn); 23 24 $sql = <<<EOD 25 /* test_one_table_object table records */ 26 insert into test_one_table_object (id, annotation, content) values (1, 'whatever;', 'whatever;'); 27 insert into test_one_table_object (id, annotation, content) values (2, 'whatever;', 'whatever;'); 28 29 /* test_db_table table records */ 30 insert into test_db_table (id, description, title) values (1, 'whatever;', 'whatever;'); 31 insert into test_db_table (id, description, title) values (2, 'whatever;', 'whatever;'); 32 EOD; 33 34 $this->file_path = LIMB_VAR_DIR . '/sql_dump_loader.tmp'; 35 36 $this->_writeDump($sql, $this->file_path); 37 38 $this->_dbCleanUp(); 39 } 40 41 function tearDown() 42 { 43 unlink($this->file_path); 44 $this->_dbCleanUp(); 45 } 46 47 function _createLoader($file = null) 48 { 49 return new lmbSQLDumpLoader($file); 50 } 51 52 function _writeDump($sql, $file) 53 { 54 $fh = fopen($file, 'w'); 55 fwrite($fh, $sql); 56 fclose($fh); 57 } 58 59 function _dbCleanUp() 60 { 61 $this->db->delete('test_one_table_object'); 62 $this->db->delete('test_db_table'); 63 } 64 65 function testCreate() 66 { 67 $loader = $this->_createLoader($this->file_path); 68 $this->assertEqual($loader->getAffectedTables(), array('test_one_table_object', 'test_db_table')); 69 $this->assertEqual(sizeof($loader->getStatements()), 4); 70 } 71 72 function testCreateWithEmptyFile() 73 { 74 $loader = $this->_createLoader(); 75 $this->assertEqual($loader->getAffectedTables(), array()); 76 $this->assertEqual($loader->getStatements(), array()); 77 } 78 79 function testLoad() 80 { 81 $loader = $this->_createLoader(); 82 $loader->loadFile($this->file_path); 83 $this->assertEqual($loader->getAffectedTables(), array('test_one_table_object', 'test_db_table')); 84 $this->assertEqual(sizeof($loader->getStatements()), 4); 85 } 86 87 function testLoadTwice() 88 { 89 $loader = $this->_createLoader(); 90 $loader->loadFile($this->file_path); 91 $this->assertEqual($loader->getAffectedTables(), array('test_one_table_object', 'test_db_table')); 92 $this->assertEqual(sizeof($loader->getStatements()), 4); 93 94 $new_sql = <<<EOD 95 insert into foo (id, annotation, content) values (1, 'whatever;', 'whatever;'); 96 EOD; 97 98 $second_file = LIMB_VAR_DIR . '/sql_dump_loader.new'; 99 $this->_writeDump($new_sql, $second_file); 100 101 $loader->loadFile($second_file); 102 103 $this->assertEqual($loader->getAffectedTables(), array('foo')); 104 $this->assertEqual(sizeof($loader->getStatements()), 1); 105 } 106 107 function testExecute() 108 { 109 $loader = $this->_createLoader($this->file_path); 110 $this->assertEqual($loader->getAffectedTables(), array('test_one_table_object', 'test_db_table')); 111 112 $loader->execute($this->conn); 113 114 $rs1 = $this->db->select('test_one_table_object'); 115 $this->assertEqual($rs1->count(), 2); 116 117 $rs2 = $this->db->select('test_db_table'); 118 $this->assertEqual($rs2->count(), 2); 119 } 120 121 function testExecutePattern() 122 { 123 $loader = $this->_createLoader($this->file_path); 124 125 $loader->execute($this->conn, '/test_one_table_object/'); 126 127 $rs1 = $this->db->select('test_one_table_object'); 128 $this->assertEqual($rs1->count(), 2); 129 130 $rs2 = $this->db->select('test_db_table'); 131 $this->assertEqual($rs2->count(), 0); 132 } 133 134 function testFreeDataBase() 135 { 136 $this->db->insert('test_one_table_object', array('id' => 10, 137 'annotation' => 'some annotation', 138 'content' => 'some content')); 139 140 $this->db->insert('test_db_table', array('id' => 10, 141 'description' => 'some description', 142 'title' => 'some title')); 143 144 145 $loader = $this->_createLoader($this->file_path); 146 $this->assertEqual($loader->getAffectedTables(), array('test_one_table_object', 'test_db_table')); 147 148 $loader->cleanTables($this->conn); 149 150 $rs1 = $this->db->select('test_one_table_object'); 151 $this->assertEqual($rs1->count(), 0); 152 153 $rs2 = $this->db->select('test_db_table'); 154 $this->assertEqual($rs2->count(), 0); 155 } 156 } 157 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sat Nov 22 03:48:54 2008 | Cross-referenced by PHPXref 0.7 |