mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-13 19:51:30 +00:00
The latest images incorporate all changes previously added by the dockerfiles. The arm image however is still missing/unreliable from the registry and must be built independently.
283 lines
7.8 KiB
PHP
283 lines
7.8 KiB
PHP
<?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;
|
|
|
|
use Mockery\Matcher\MatcherInterface;
|
|
|
|
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, MatcherInterface::class, true) &&
|
|
!$isHamcrest
|
|
) {
|
|
throw new InvalidArgumentException(sprintf(
|
|
"Matcher class must implement %s, '%s' given.",
|
|
MatcherInterface::class,
|
|
$matcherClass
|
|
));
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|