[limb-svn] r6697 - in 3.x/trunk/limb/dbal: src/drivers src/drivers/mysql src/drivers/oci src/drivers/pgsql src/drivers/sqlite tests/cases/non-driver

svn at limb-project.com svn at limb-project.com
Fri Jan 18 11:39:40 MSK 2008


Author: serega
Date: 2008-01-18 11:39:40 +0300 (Fri, 18 Jan 2008)
New Revision: 6697
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6697

Modified:
   3.x/trunk/limb/dbal/src/drivers/lmbAuditDbConnection.class.php
   3.x/trunk/limb/dbal/src/drivers/lmbDbStatement.interface.php
   3.x/trunk/limb/dbal/src/drivers/mysql/lmbMysqlStatement.class.php
   3.x/trunk/limb/dbal/src/drivers/oci/lmbOciStatement.class.php
   3.x/trunk/limb/dbal/src/drivers/pgsql/lmbPgsqlStatement.class.php
   3.x/trunk/limb/dbal/src/drivers/sqlite/lmbSqliteStatement.class.php
   3.x/trunk/limb/dbal/tests/cases/non-driver/lmbAuditDbConnectionTest.class.php
Log:
-- interface lmbDbStatement :: setConnection() added. This allow to inject special db connections into statements.
-- better lmbAuditDbConnection tests

Modified: 3.x/trunk/limb/dbal/src/drivers/lmbAuditDbConnection.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/drivers/lmbAuditDbConnection.class.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/src/drivers/lmbAuditDbConnection.class.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -27,6 +27,13 @@
     return parent :: execute($sql);
   }
   
+  function newStatement($sql)
+  {
+    $statement = parent :: newStatement($sql);
+    $statement->setConnection($this);
+    return $statement;
+  }
+  
   function count()
   {
     return sizeof($this->queries);

Modified: 3.x/trunk/limb/dbal/src/drivers/lmbDbStatement.interface.php
===================================================================
--- 3.x/trunk/limb/dbal/src/drivers/lmbDbStatement.interface.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/src/drivers/lmbDbStatement.interface.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -33,6 +33,7 @@
   function import($paramList);
   function getSQL();
   function execute();
+  function setConnection($connection);
 }
 
 

Modified: 3.x/trunk/limb/dbal/src/drivers/mysql/lmbMysqlStatement.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/drivers/mysql/lmbMysqlStatement.class.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/src/drivers/mysql/lmbMysqlStatement.class.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -25,6 +25,11 @@
     $this->statement = $sql;
     $this->connection = $connection;
   }
+  
+  function setConnection($connection)
+  {
+    $this->connection = $connection;
+  }
 
   function setNull($name)
   {

Modified: 3.x/trunk/limb/dbal/src/drivers/oci/lmbOciStatement.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/drivers/oci/lmbOciStatement.class.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/src/drivers/oci/lmbOciStatement.class.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -27,6 +27,11 @@
     $this->sql = $sql;
     $this->connection = $connection;
   }
+  
+  function setConnection($connection)
+  {
+    $this->connection = $connection;
+  }
 
   function set($name, $value)
   {

Modified: 3.x/trunk/limb/dbal/src/drivers/pgsql/lmbPgsqlStatement.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/drivers/pgsql/lmbPgsqlStatement.class.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/src/drivers/pgsql/lmbPgsqlStatement.class.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -25,6 +25,11 @@
     $this->statement = $sql;
     $this->connection = $connection;
   }
+  
+  function setConnection($connection)
+  {
+    $this->connection = $connection;
+  }
 
   function setNull($name)
   {

Modified: 3.x/trunk/limb/dbal/src/drivers/sqlite/lmbSqliteStatement.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/drivers/sqlite/lmbSqliteStatement.class.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/src/drivers/sqlite/lmbSqliteStatement.class.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -25,6 +25,11 @@
     $this->statement = $sql;
     $this->connection = $connection;
   }
+  
+  function setConnection($connection)
+  {
+    $this->connection = $connection;
+  }
 
   function setNull($name)
   {

Modified: 3.x/trunk/limb/dbal/tests/cases/non-driver/lmbAuditDbConnectionTest.class.php
===================================================================
--- 3.x/trunk/limb/dbal/tests/cases/non-driver/lmbAuditDbConnectionTest.class.php	2008-01-18 07:54:57 UTC (rev 6696)
+++ 3.x/trunk/limb/dbal/tests/cases/non-driver/lmbAuditDbConnectionTest.class.php	2008-01-18 08:39:40 UTC (rev 6697)
@@ -8,8 +8,10 @@
  */
 lmb_require('limb/dbal/src/drivers/lmbAuditDbConnection.class.php');
 lmb_require('limb/dbal/src/drivers/lmbDbConnection.interface.php');
+lmb_require('limb/dbal/src/drivers/lmbDbStatement.interface.php');
 
 Mock :: generate('lmbDbConnection', 'MockDbConnection');
+Mock :: generate('lmbDbStatement', 'MockDbStatement');
 
 class lmbAuditDbConnectionTest extends UnitTestCase
 {
@@ -44,6 +46,21 @@
     $this->assertEqual($this->connection->count(), 0);
   }
   
+  function testNewStatementSetSelfAsConnection()
+  {
+    $sql = 'whatever sql';
+    
+    $this->wrapped->expectOnce('newStatement', array($sql));
+    
+    $statement = new MockDbStatement();
+    $statement->expectOnce('setConnection', array(new ReferenceExpectation($this->connection)));
+    $this->wrapped->expectOnce('newStatement', array($sql));
+    $this->wrapped->setReturnValue('newStatement', $statement, array($sql));
+    
+    $refreshed_statement = $this->connection->newStatement($sql);
+    $this->assertReference($statement, $refreshed_statement);
+  }
+  
   function testGetQueries()
   {
     $sql1 = 'SELECT program.* FROM program';



More information about the limb-svn mailing list