diff options
Diffstat (limited to 'test/test_classes.php')
-rw-r--r-- | test/test_classes.php | 57 |
1 files changed, 53 insertions, 4 deletions
diff --git a/test/test_classes.php b/test/test_classes.php index a948d01..cf805c0 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 DummyDifferentPDOStatement 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 DummyDifferentPDO extends PDO { + + /** + * Return a dummy PDO statement + */ + public function prepare($statement, $driver_options = array()) { + $this->last_query = new DummyDifferentPDOStatement($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); } } } |