[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