mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-13 19:51:30 +00:00
The official image from streamline does not currently work for the arm64 platform. As a temporary measure, the source code and docker build scripts have been lifted from the official images and are used to build locally. Some additional modifications are made to reduce overall image size, these are documented in docker/README.md
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;
|
|
}
|
|
}
|