Open Monograph Press  3.3.0
DBDataXMLParserTest.php
1 <?php
2 
17 import('lib.pkp.tests.DatabaseTestCase');
18 import('lib.pkp.classes.db.DBDataXMLParser');
19 
25  public function testParseSQLData() {
26  $dataXMLParser = new DBDataXMLParser();
27  $dataXMLParser->setDBConn(DBConnection::getConn());
28  $sql = $dataXMLParser->parseData(dirname(__FILE__) . '/data-sql.xml');
29  switch (Config::getVar('database', 'driver')) {
30  case 'mysqli':
31  case 'mysql':
32  $this->assertEquals(array('RAW QUERY', 'RAW MYSQL QUERY'), $sql);
33  break;
34  case 'postgres':
35  case 'postgres64':
36  case 'postgres7':
37  case 'postgres8':
38  case 'postgres9':
39  $this->assertEquals(array('RAW QUERY', 'RAW POSTGRESQL QUERY'), $sql);
40  break;
41  default: $this->fail('Unknown DB driver.');
42  }
43  }
44 
49  public function testParseTableData() {
50  $dataXMLParser = new DBDataXMLParser();
51  $dataXMLParser->setDBConn(DBConnection::getConn());
52  $sql = $dataXMLParser->parseData(dirname(__FILE__) . '/data-table.xml');
53  $this->assertEquals(array(
54  'INSERT INTO mytable (notnullable_col, nullable_col, normal_col) VALUES (\'\', NULL, \'MY_VALUE_1\')',
55  'INSERT INTO mytable (notnullable_col, nullable_col, normal_col, default_col) VALUES (\'\', NULL, \'MY_VALUE_2\', \'DEFAULT_OVERRIDDEN\')'
56  ), $sql);
57  }
58 
63  public function testParseSQLDDL() {
64  $dataXMLParser = new DBDataXMLParser();
65  $dataXMLParser->setDBConn(DBConnection::getConn());
66  switch (Config::getVar('database', 'driver')) {
67  case 'mysql':
68  case 'mysqli':
69  $this->assertEquals(
70  array(
71  array('DROP TABLE IF EXISTS myDropTable'),
72  array('ALTER TABLE myModTable DROP COLUMN myDropColumn'),
73  array('RENAME TABLE sessions TO myNewTableName'),
74  ),
75  $dataXMLParser->parseData(dirname(__FILE__) . '/data-ddl.xml')
76  );
77  break;
78  case 'postgres':
79  case 'postgres64':
80  case 'postgres7':
81  case 'postgres8':
82  case 'postgres9':
83  $this->markTestSkipped('PostgreSQL/ADODB weirdness prevents this test.');
84  break;
85  default: $this->fail('Unknown DB driver.');
86  }
87  }
88 }
89 
90 
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
DBDataXMLParser
Class to import and export database data from an XML format. See dbscripts/xml/dtd/xmldata....
Definition: DBDataXMLParser.inc.php:20
DBDataXMLParserTest
Tests for the DBDataXMLParser class.
Definition: DBDataXMLParserTest.php:20
DBConnection\getConn
static & getConn()
Definition: DBConnection.inc.php:257
DBDataXMLParserTest\testParseSQLDDL
testParseSQLDDL()
Definition: DBDataXMLParserTest.php:63
DBDataXMLParserTest\testParseSQLData
testParseSQLData()
Definition: DBDataXMLParserTest.php:25
DatabaseTestCase
Base class for unit tests that require database support. The schema TestName.setUp....
Definition: DatabaseTestCase.inc.php:23
DBDataXMLParserTest\testParseTableData
testParseTableData()
Definition: DBDataXMLParserTest.php:49