mdb_manager_testcase.php
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 166 行
PHP
166 行
<?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 testing var $dsn; //contains the options that should be used during testing var $options; //contains the name of the database we are testing var $database; //contains the MDB_Manager object of the db once we have connected var $manager; //contains the name of the driver_test schema var $driver_input_file = 'driver_test.schema'; //contains the name of the lob_test schema var $lob_input_file = 'lob_test.schema'; //contains the name of the extension to use for backup schemas var $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'); }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?