Viewing file: Configuration.php (7.81 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * Mockery (https://docs.mockery.io/) * * @copyright https://github.com/mockery/mockery/blob/HEAD/COPYRIGHT.md * @license https://github.com/mockery/mockery/blob/HEAD/LICENSE BSD 3-Clause License * @link https://github.com/mockery/mockery for the canonical source repository */
namespace Mockery;
class Configuration { /** * Boolean assertion of whether we can mock methods which do not actually * exist for the given class or object (ignored for unreal mocks) * * @var bool */ protected $_allowMockingNonExistentMethod = true;
/** * Boolean assertion of whether we ignore unnecessary mocking of methods, * i.e. when method expectations are made, set using a zeroOrMoreTimes() * constraint, and then never called. Essentially such expectations are * not required and are just taking up test space. * * @var bool */ protected $_allowMockingMethodsUnnecessarily = true;
/** * @var QuickDefinitionsConfiguration */ protected $_quickDefinitionsConfiguration;
/** * Parameter map for use with PHP internal classes. * * @var array */ protected $_internalClassParamMap = array();
protected $_constantsMap = array();
/** * Boolean assertion is reflection caching enabled or not. It should be * always enabled, except when using PHPUnit's --static-backup option. * * @see https://github.com/mockery/mockery/issues/268 */ protected $_reflectionCacheEnabled = true;
public function __construct() { $this->_quickDefinitionsConfiguration = new QuickDefinitionsConfiguration(); }
/** * Custom object formatters * * @var array */ protected $_objectFormatters = array();
/** * Default argument matchers * * @var array */ protected $_defaultMatchers = array();
/** * Set boolean to allow/prevent mocking of non-existent methods * * @param bool $flag */ public function allowMockingNonExistentMethods($flag = true) { $this->_allowMockingNonExistentMethod = (bool) $flag; }
/** * Return flag indicating whether mocking non-existent methods allowed * * @return bool */ public function mockingNonExistentMethodsAllowed() { return $this->_allowMockingNonExistentMethod; }
/** * Set boolean to allow/prevent unnecessary mocking of methods * * @param bool $flag * * @deprecated since 1.4.0 */ public function allowMockingMethodsUnnecessarily($flag = true) { @trigger_error(sprintf("The %s method is deprecated and will be removed in a future version of Mockery", __METHOD__), E_USER_DEPRECATED);
$this->_allowMockingMethodsUnnecessarily = (bool) $flag; }
/** * Return flag indicating whether mocking non-existent methods allowed * * @return bool * * @deprecated since 1.4.0 */ public function mockingMethodsUnnecessarilyAllowed() { @trigger_error(sprintf("The %s method is deprecated and will be removed in a future version of Mockery", __METHOD__), E_USER_DEPRECATED);
return $this->_allowMockingMethodsUnnecessarily; }
/** * Set a parameter map (array of param signature strings) for the method * of an internal PHP class. * * @param string $class * @param string $method * @param array $map */ public function setInternalClassMethodParamMap($class, $method, array $map) { if (\PHP_MAJOR_VERSION > 7) { throw new \LogicException('Internal class parameter overriding is not available in PHP 8. Incompatible signatures have been reclassified as fatal errors.'); }
if (!isset($this->_internalClassParamMap[strtolower($class)])) { $this->_internalClassParamMap[strtolower($class)] = array(); } $this->_internalClassParamMap[strtolower($class)][strtolower($method)] = $map; }
/** * Remove all overridden parameter maps from internal PHP classes. */ public function resetInternalClassMethodParamMaps() { $this->_internalClassParamMap = array(); }
/** * Get the parameter map of an internal PHP class method * * @return array|null */ public function getInternalClassMethodParamMap($class, $method) { if (isset($this->_internalClassParamMap[strtolower($class)][strtolower($method)])) { return $this->_internalClassParamMap[strtolower($class)][strtolower($method)]; } }
public function getInternalClassMethodParamMaps() { return $this->_internalClassParamMap; }
public function setConstantsMap(array $map) { $this->_constantsMap = $map; }
public function getConstantsMap() { return $this->_constantsMap; }
/** * Returns the quick definitions configuration */ public function getQuickDefinitions(): QuickDefinitionsConfiguration { return $this->_quickDefinitionsConfiguration; }
/** * Disable reflection caching * * It should be always enabled, except when using * PHPUnit's --static-backup option. * * @see https://github.com/mockery/mockery/issues/268 */ public function disableReflectionCache() { $this->_reflectionCacheEnabled = false; }
/** * Enable reflection caching * * It should be always enabled, except when using * PHPUnit's --static-backup option. * * @see https://github.com/mockery/mockery/issues/268 */ public function enableReflectionCache() { $this->_reflectionCacheEnabled = true; }
/** * Is reflection cache enabled? */ public function reflectionCacheEnabled() { return $this->_reflectionCacheEnabled; }
public function setObjectFormatter($class, $formatterCallback) { $this->_objectFormatters[$class] = $formatterCallback; }
public function getObjectFormatter($class, $defaultFormatter) { $parentClass = $class; do { $classes[] = $parentClass; $parentClass = get_parent_class($parentClass); } while ($parentClass); $classesAndInterfaces = array_merge($classes, class_implements($class)); foreach ($classesAndInterfaces as $type) { if (isset($this->_objectFormatters[$type])) { return $this->_objectFormatters[$type]; } } return $defaultFormatter; }
/** * @param string $class * @param string $matcherClass */ public function setDefaultMatcher($class, $matcherClass) { $isHamcrest = is_a($matcherClass, \Hamcrest\Matcher::class, true) || is_a($matcherClass, \Hamcrest_Matcher::class, true); if ( !is_a($matcherClass, \Mockery\Matcher\MatcherAbstract::class, true) && !$isHamcrest ) { throw new \InvalidArgumentException( "Matcher class must extend \Mockery\Matcher\MatcherAbstract, " . "'$matcherClass' given." ); }
if ($isHamcrest) { @trigger_error('Hamcrest package has been deprecated and will be removed in 2.0', E_USER_DEPRECATED); }
$this->_defaultMatchers[$class] = $matcherClass; }
public function getDefaultMatcher($class) { $parentClass = $class; do { $classes[] = $parentClass; $parentClass = get_parent_class($parentClass); } while ($parentClass); $classesAndInterfaces = array_merge($classes, class_implements($class)); foreach ($classesAndInterfaces as $type) { if (isset($this->_defaultMatchers[$type])) { return $this->_defaultMatchers[$type]; } } return null; } }
|