[limb-svn] r6956 - in 3.x/trunk/limb/dbal: src/dump tests/cases/non-driver/dump

svn at limb-project.com svn at limb-project.com
Fri Apr 25 16:28:10 MSD 2008


Author: korchasa
Date: 2008-04-25 16:28:10 +0400 (Fri, 25 Apr 2008)
New Revision: 6956
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6956

Added:
   3.x/trunk/limb/dbal/tests/cases/non-driver/dump/lmbMysqliDumpLoaderTest.class.php
Modified:
   3.x/trunk/limb/dbal/src/dump/lmbMysqliDumpLoader.class.php
Log:
-- added implementation for lmbMysqliDumpLoader

Modified: 3.x/trunk/limb/dbal/src/dump/lmbMysqliDumpLoader.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/dump/lmbMysqliDumpLoader.class.php	2008-04-25 07:18:18 UTC (rev 6955)
+++ 3.x/trunk/limb/dbal/src/dump/lmbMysqliDumpLoader.class.php	2008-04-25 12:28:10 UTC (rev 6956)
@@ -14,7 +14,7 @@
  * @package dbal
  * @version $Id: lmbMysqlDumpLoader.class.php 6243 2007-08-29 11:53:10Z pachanga $
  */
-class lmbMysqlDumpLoader extends lmbSQLDumpLoader
+class lmbMysqliDumpLoader extends lmbSQLDumpLoader
 {
   // the parsing code was taken from somewhere else...
   // and it's ugly, ugly, ugly!!!

Added: 3.x/trunk/limb/dbal/tests/cases/non-driver/dump/lmbMysqliDumpLoaderTest.class.php
===================================================================
--- 3.x/trunk/limb/dbal/tests/cases/non-driver/dump/lmbMysqliDumpLoaderTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/dbal/tests/cases/non-driver/dump/lmbMysqliDumpLoaderTest.class.php	2008-04-25 12:28:10 UTC (rev 6956)
@@ -0,0 +1,87 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+lmb_require('limb/dbal/src/dump/lmbMysqliDumpLoader.class.php');
+lmb_require(dirname(__FILE__) . '/lmbSQLDumpLoaderTestBase.class.php');
+
+class lmbMysqliDumpLoaderTest extends lmbSQLDumpLoaderTestBase
+{
+  function skip()
+  {
+    $this->skipIf(!lmbToolkit :: instance()->getDefaultDbConnection() instanceof lmbMysqliConnection,
+                  "lmbMysqliDumpLoader tests skipped, mysqli connection required");
+  }
+
+  function _createLoader($file=null)
+  {
+    return new lmbMysqliDumpLoader($file);
+  }
+
+  function testFullBlownMysqlDump()
+  {
+    $sql = <<< EOD
+/*
+SQLyog Enterprise v4.06 RC1
+Host - 4.0.12-max-debug : Database - all-limb-tests
+*********************************************************************
+Server version : 4.0.12-max-debug
+*/
+
+SET FOREIGN_KEY_CHECKS=0;
+
+create database if not exists `foo`;
+
+/*Table structure for table `bar` */
+
+drop table if exists `bar`;
+
+CREATE TABLE `bar` (
+  `id` int(11) NOT null auto_increment,
+  `url` varchar(255) NOT null default '',
+  `description` varchar(255) default null,
+  `img_src` varchar(255) default null,
+  PRIMARY KEY  (`id`),
+  KEY `id` (`id`,`oid`)
+) TYPE=InnoDB;
+
+/*Data for the table `baz` */;
+LOCK TABLES `baz` WRITE;
+
+UNLOCK TABLES;
+
+INSERT INTO `article` VALUES (8,101,2,'TemplateView','Template View','wiki');
+EOD;
+
+    $this->_writeDump($sql, $this->file_path);
+
+    $loader = $this->_createLoader($this->file_path);
+
+    $statements = $loader->getStatements();
+
+    $this->assertEqual(sizeof($statements), 7);
+
+    $this->assertEqual($statements[0], 'SET FOREIGN_KEY_CHECKS=0');
+    $this->assertEqual($statements[1], 'create database if not exists `foo`');
+    $this->assertEqual($statements[2], 'drop table if exists `bar`');
+    $this->assertEqual($statements[3], "CREATE TABLE `bar` (
+  `id` int(11) NOT null auto_increment,
+  `url` varchar(255) NOT null default '',
+  `description` varchar(255) default null,
+  `img_src` varchar(255) default null,
+  PRIMARY KEY  (`id`),
+  KEY `id` (`id`,`oid`)
+) TYPE=InnoDB");
+    $this->assertEqual($statements[4], 'LOCK TABLES `baz` WRITE');
+    $this->assertEqual($statements[5], 'UNLOCK TABLES');
+    $this->assertEqual($statements[6], "INSERT INTO `article` VALUES (8,101,2,'TemplateView','Template View','wiki')");
+
+    $this->assertEqual($loader->getAffectedTables(), array('article'));
+  }
+}
+
+



More information about the limb-svn mailing list