Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
modified unit tests for new Cashing driver
git-svn-id: http://svn.php.net/repository/pear/packages/XML_Query2XML/trunk@276517 c90b9560-bf6c-de11-be94-00142212c4b1
  • Loading branch information
Lukas Feiler committed Feb 26, 2009
1 parent a9dc767 commit 56db369
Show file tree
Hide file tree
Showing 8 changed files with 304 additions and 114 deletions.
Expand Up @@ -65,12 +65,9 @@ QUERY: SELECT
FROM
artist
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
DONE
Expand Up @@ -65,12 +65,9 @@ QUERY: SELECT
FROM
artist
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
DONE
50 changes: 38 additions & 12 deletions tests/XML_Query2XML/AllDBLayers/getXML/caching_cached.phpt
Expand Up @@ -4,6 +4,9 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
<?php require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
--FILE--
<?php
require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';

class MyLogger
{
public $data = '';
Expand All @@ -13,10 +16,29 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
}
}

require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';
$query2xml =& XML_Query2XML::factory($db);
class MyDriver extends XML_Query2XML_Driver
{
public function __construct($driver, $logger)
{
$this->_driver = $driver;
$this->_logger = $logger;
}

public function getAllRecords($sql, $configPath)
{
// this allows us to notice when the results are fetched from the DB
$this->_logger->log('FROM DB: ' . $sql['query']);
return $this->_driver->getAllRecords($sql, $configPath);
}

public function preprocessQuery(&$query, $configPath)
{
return $this->_driver->preprocessQuery($query, $configPath);
}
}
$debugLogger = new MyLogger();
$driver = XML_Query2XML_Driver::factory($db);
$query2xml = XML_Query2XML::factory(new MyDriver($driver, $debugLogger));
$query2xml->enableDebugLog($debugLogger);
$dom =& $query2xml->getXML(
'SELECT * FROM artist UNION ALL SELECT * FROM artist',
Expand Down Expand Up @@ -58,16 +80,20 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
?>
--EXPECT--
QUERY: SELECT * FROM artist UNION ALL SELECT * FROM artist
FROM DB: SELECT * FROM artist UNION ALL SELECT * FROM artist
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
DONE
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:1
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:2
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
DONE
@@ -1,9 +1,12 @@
--TEST--
XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
XML_Query2XML::enableDebugLog() with single XML_Query2XML_Driver_Caching instance used for multiple driver options
--SKIPIF--
<?php require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
--FILE--
<?php
require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';

class MyLogger
{
public $data = '';
Expand All @@ -12,13 +15,34 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
$this->data .= $str . "\n";
}
}

require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';

class MyDriver extends XML_Query2XML_Driver
{
public function __construct($driver, $logger)
{
$this->_driver = $driver;
$this->_logger = $logger;
}

public function getAllRecords($sql, $configPath)
{
// this allows us to notice when the results are fetched from the DB
$this->_logger->log('FROM DB: ' . $sql['query']);
return $this->_driver->getAllRecords($sql, $configPath);
}

public function preprocessQuery(&$query, $configPath)
{
return $this->_driver->preprocessQuery($query, $configPath);
}
}

$query2xml =& XML_Query2XML::factory($db);
$debugLogger = new MyLogger();
$driver = XML_Query2XML_Driver::factory($db);
$query2xml->enableDebugLog($debugLogger);
require_once 'XML/Query2XML/Driver/Caching.php';
$myDriver = new XML_Query2XML_Driver_Caching(new MyDriver($driver, $debugLogger));
$dom =& $query2xml->getXML(
'SELECT * FROM artist UNION ALL SELECT * FROM artist',
array(
Expand All @@ -37,7 +61,7 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
'artistid'
),
'query' => 'SELECT * FROM album WHERE artist_id = ?',
'driver' => $driver
'driver' => $myDriver
),
'sql_options' => array(
'cached' => true
Expand All @@ -58,7 +82,7 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
'artistid'
),
'query' => 'SELECT * FROM album WHERE artist_id = ?',
'driver' => $driver
'driver' => $myDriver
),
'sql_options' => array(
'cached' => true
Expand All @@ -82,27 +106,30 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
--EXPECT--
QUERY: SELECT * FROM artist UNION ALL SELECT * FROM artist
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
DONE
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3
DONE
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:1
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:1
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:2
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:2
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:3
CACHED: SELECT * FROM album WHERE artist_id = ?; DATA:3
58 changes: 46 additions & 12 deletions tests/XML_Query2XML/AllDBLayers/getXML/caching_cached_limit.phpt
Expand Up @@ -4,6 +4,9 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
<?php $db_layers = array('MDB2', 'DB'); require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
--FILE--
<?php
require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';

class MyLogger
{
public $data = '';
Expand All @@ -12,11 +15,38 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
$this->data .= $str . "\n";
}
}

class MyDriver extends XML_Query2XML_Driver
{
public function __construct($driver, $logger)
{
$this->_driver = $driver;
$this->_logger = $logger;
}

public function getAllRecords($sql, $configPath)
{
// this allows us to notice when the results are fetched from the DB
if (strpos($sql['query'], '?') !== false) {
$query = substr($sql['query'], 0, strpos($sql['query'], '?')+1);
} else {
$query = $sql['query'];
}
$this->_logger->log(
'FROM DB: ' . $query
);
return $this->_driver->getAllRecords($sql, $configPath);
}

public function preprocessQuery(&$query, $configPath)
{
return $this->_driver->preprocessQuery($query, $configPath);
}
}

require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';
$query2xml =& XML_Query2XML::factory($db);
$driver = XML_Query2XML_Driver::factory($db);
$debugLogger = new MyLogger();
$query2xml = XML_Query2XML::factory(new MyDriver($driver, $debugLogger));
$query2xml->enableDebugLog($debugLogger);
$dom =& $query2xml->getXML(
'SELECT * FROM artist UNION ALL SELECT * FROM artist',
Expand Down Expand Up @@ -59,16 +89,20 @@ XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true
?>
--EXPECT--
QUERY: SELECT * FROM artist UNION ALL SELECT * FROM artist
FROM DB: SELECT * FROM artist UNION ALL SELECT * FROM artist
DONE
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:1
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:2
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:3
FROM DB: SELECT * FROM album WHERE artist_id = ?
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:1
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:1
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:2
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:2
DONE
CACHING: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:3
QUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:3
DONE
CACHED: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:1
CACHED: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:2
CACHED: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0; DATA:3

0 comments on commit 56db369

Please sign in to comment.