Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php// +----------------------------------------------------------------------+// | PHP Version 4 |// +----------------------------------------------------------------------+// | Copyright (c) 1998-2004 Manuel Lemos, Paul Cooper |// | All rights reserved. |// +----------------------------------------------------------------------+// | MDB is a merge of PEAR DB and Metabases that provides a unified DB |// | API as well as database abstraction for PHP applications. |// | This LICENSE is in the BSD license style. |// | |// | Redistribution and use in source and binary forms, with or without |// | modification, are permitted provided that the following conditions |// | are met: |// | |// | Redistributions of source code must retain the above copyright |// | notice, this list of conditions and the following disclaimer. |// | |// | Redistributions in binary form must reproduce the above copyright |// | notice, this list of conditions and the following disclaimer in the |// | documentation and/or other materials provided with the distribution. |// | |// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken, |// | Lukas Smith nor the names of his contributors may be used to endorse |// | or promote products derived from this software without specific prior|// | written permission. |// | |// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|// | OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |// | POSSIBILITY OF SUCH DAMAGE. |// +----------------------------------------------------------------------+// | Author: Paul Cooper <pgc@ucecom.com> |// +----------------------------------------------------------------------+//// $Id: MDB_manager_testcase.php,v 1.9.4.4 2004/02/23 20:08:02 quipo Exp $class MDB_Manager_TestCase extends PHPUnit_TestCase {//contains the dsn of the database we are testingvar $dsn;//contains the options that should be used during testingvar $options;//contains the name of the database we are testingvar $database;//contains the MDB_Manager object of the db once we have connectedvar $manager;//contains the name of the driver_test schemavar $driver_input_file = 'driver_test.schema';//contains the name of the lob_test schemavar $lob_input_file = 'lob_test.schema';//contains the name of the extension to use for backup schemasvar $backup_extension = '.before';function MDB_Manager_Test($name) {$this->PHPUnit_TestCase($name);}function setUp() {$this->dsn = $GLOBALS['dsn'];$this->options = $GLOBALS['options'];$this->database = $GLOBALS['database'];$backup_file = $this->driver_input_file.$this->backup_extension;if (file_exists($backup_file)) {unlink($backup_file);}$backup_file = $this->lob_input_file.$this->backup_extension;if (file_exists($backup_file)) {unlink($backup_file);}$this->manager =& new MDB_Manager;$this->manager->connect($this->dsn, $this->options);if (MDB::isError($this->manager)) {$this->assertTrue(false, 'Could not connect to manager in setUp');exit;}$this->fields = array('user_name','user_password','subscribed','user_id','quota','weight','access_date','access_time','approved');$this->types = array('text','text','boolean','integer','decimal','float','date','time','timestamp');}function tearDown() {unset($this->dsn);if (!MDB::isError($this->manager)) {$this->manager->disconnect();}unset($this->manager);}function methodExists(&$class, $name) {if (is_object($class)&& array_key_exists(strtolower($name), array_change_key_case(array_flip(get_class_methods($class))))) {return true;}$this->assertTrue(false, 'method '. $name.' not implemented in '.get_class($class));return false;}function testCreateDatabase() {if (!$this->methodExists($this->manager->database, 'dropDatabase')) {return;}$result = $this->manager->database->dropDatabase($this->database);if (!MDB::isError($result) || $result->getCode() != MDB_ERROR_UNSUPPORTED) {if (!$this->methodExists($this->manager, 'updateDatabase')) {return;}$result = $this->manager->updateDatabase($this->driver_input_file, false, array('create' =>'1', 'name' => $this->database));if(!MDB::isError($result)) {$result = $this->manager->updateDatabase($this->lob_input_file, false, array('create' =>'0', 'name' => $this->database));}$this->assertFalse(MDB::isError($result), 'Error creating database');} else if ($result->getCode() == MDB_ERROR_UNSUPPORTED) {$this->assertTrue(false, 'Database creation not supported');}}function testUpdateDatabase() {if (!$this->methodExists($this->manager, 'updateDatabase')) {return;}$backup_file = $this->driver_input_file.$this->backup_extension;if (!file_exists($backup_file)) {copy($this->driver_input_file, $backup_file);}$result = $this->manager->updateDatabase($this->driver_input_file, $backup_file, array('create' =>'0', 'name' =>$this->database));if(!MDB::isError($result)) {$backup_file = $this->lob_input_file.$this->backup_extension;if (!file_exists($backup_file)) {copy($this->lob_input_file, $backup_file);}$result = $this->manager->updateDatabase($this->lob_input_file, $backup_file, array('create' =>'0', 'name' => $this->database));}$this->assertFalse(MDB::isError($result), 'Error updating database');}}?>