/UnitTest/src/test/settings.php
PHP | 116 lines | 53 code | 8 blank | 55 comment | 4 complexity | 6d6ce907c366bb53c7d8fc4b4c8d8fb9 MD5 | raw file
- <?php
- /**
- * File containing the ezcTestSettings class
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- * @package UnitTest
- * @version //autogentag//
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
- */
- PHP_CodeCoverage::getInstance()->filter()->addFileToBlacklist( __FILE__, 'PHPUNIT' );
- /**
- * This object stores the settings from the TestRunner.
- *
- * Every TestCase can get the instance of this object, and access the settings.
- *
- * @package UnitTest
- * @version //autogentag//
- */
- class ezcTestSettings
- {
- /**
- * Holds the properties
- */
- private $properties = array();
- /**
- * Holds the one and only instance of this object.
- */
- private static $instance = null;
- /**
- * Use the getInstance() method instead to get an instance of this class.
- */
- private function __construct()
- {
- $this->properties['db'] = new ezcTestDatabaseSettings;
- }
- /**
- * Returns an instance of this class.
- */
- public static function getInstance()
- {
- if ( is_null( ezcTestSettings::$instance ))
- {
- ezcTestSettings::$instance = new ezcTestSettings();
- }
- return ezcTestSettings::$instance;
- }
- /**
- * No properties can be set.
- * @ignore
- */
- public function __set( $name, $value )
- {
- switch ( $name )
- {
- case 'db':
- trigger_error( "Property: db is read-only", E_USER_ERROR );
- break;
- }
- }
- /**
- * The db property can be read.
- * @ignore
- */
- public function __get( $name )
- {
- switch ( $name )
- {
- case 'db':
- return $this->properties['db'];
- default:
- return parent::__get( $name );
- }
- }
- /**
- * Set all the database settings via a given settings array.
- */
- public function setDatabaseSettings( $settings )
- {
- $settingNames = array(
- 'dsn', 'phptype', 'dbsyntax', 'username', 'password', 'protocol',
- 'hostspec', 'port', 'socket', 'database'
- );
- foreach ( $settingNames as $settingName )
- {
- if ( isset( $settings[$settingName] ) )
- {
- $this->properties['db']->$settingName = $settings[$settingName];
- }
- }
- }
- }
- ?>