summaryrefslogtreecommitdiff
path: root/test/test_classes.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_classes.php')
-rw-r--r--test/test_classes.php57
1 files changed, 53 insertions, 4 deletions
diff --git a/test/test_classes.php b/test/test_classes.php
index ff31764..6af1a76 100644
--- a/test/test_classes.php
+++ b/test/test_classes.php
@@ -11,7 +11,11 @@
/**
* Return some dummy data
*/
- public function fetch($fetch_style=PDO::FETCH_BOTH, $cursor_orientation=PDO::FETCH_ORI_NEXT, $cursor_offset=0) {
+ public function fetch(
+ $fetch_style = PDO::FETCH_BOTH,
+ $cursor_orientation = PDO::FETCH_ORI_NEXT,
+ $cursor_offset = 0
+ ) {
if ($this->current_row == 5) {
return false;
} else {
@@ -39,6 +43,44 @@
}
/**
+ * Another mock PDOStatement class, for testing multiple connections
+ */
+ class MockDifferentPDOStatement extends PDOStatement {
+
+ private $current_row = 0;
+ /**
+ * Return some dummy data
+ */
+ public function fetch(
+ $fetch_style = PDO::FETCH_BOTH,
+ $cursor_orientation = PDO::FETCH_ORI_NEXT,
+ $cursor_offset = 0
+ ) {
+ if ($this->current_row == 5) {
+ return false;
+ } else {
+ $this->current_row++;
+ return array('name' => 'Steve', 'age' => 80, 'id' => "{$this->current_row}");
+ }
+ }
+ }
+
+ /**
+ * A different mock database class, for testing multiple connections
+ * Mock database class implementing a subset of the PDO API.
+ */
+ class MockDifferentPDO extends PDO {
+
+ /**
+ * Return a dummy PDO statement
+ */
+ public function prepare($statement, $driver_options = array()) {
+ $this->last_query = new MockDifferentPDOStatement($statement);
+ return $this->last_query;
+ }
+ }
+
+ /**
*
* Class to provide simple testing functionality
*
@@ -110,12 +152,19 @@
* Check the provided string is equal to the last
* query generated by the dummy database class.
*/
- public static function check_equal($test_name, $query) {
+ public static function check_equal_query($test_name, $query) {
$last_query = ORM::get_last_query();
- if ($query === $last_query) {
+ self::check_equal_string($test_name, $query, $last_query);
+ }
+
+ /**
+ * Check the provided strings are equal
+ */
+ public static function check_equal_string($test_name, $s1, $s2) {
+ if ($s1 === $s2) {
self::report_pass($test_name);
} else {
- self::report_failure($test_name, $query, $last_query);
+ self::report_failure($test_name, $s1, $s2);
}
}
}