Initial Commit
This commit is contained in:
+7
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitdc95a8937466587a1b2e95921c723b74::getLoader();
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../phpunit/phpunit/phpunit) using eval to remove the shebang if present
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
$binPath = realpath(__DIR__ . "/" . '../phpunit/phpunit/phpunit');
|
||||
$contents = file_get_contents($binPath);
|
||||
$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
|
||||
if ($replaced) {
|
||||
$contents = strtr($contents, array(
|
||||
'__FILE__' => var_export($binPath, true),
|
||||
'__DIR__' => var_export(dirname($binPath), true),
|
||||
));
|
||||
|
||||
eval($contents);
|
||||
exit(0);
|
||||
}
|
||||
include $binPath;
|
||||
@@ -0,0 +1,4 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/../phpunit/phpunit/phpunit
|
||||
php "%BIN_TARGET%" %*
|
||||
@@ -0,0 +1,479 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
/**
|
||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||
*
|
||||
* $loader = new \Composer\Autoload\ClassLoader();
|
||||
*
|
||||
* // register classes with namespaces
|
||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||
* $loader->add('Symfony', __DIR__.'/framework');
|
||||
*
|
||||
* // activate the autoloader
|
||||
* $loader->register();
|
||||
*
|
||||
* // to enable searching the include path (eg. for PEAR packages)
|
||||
* $loader->setUseIncludePath(true);
|
||||
*
|
||||
* In this example, if you try to use a class in the Symfony\Component
|
||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||
* the autoloader will first look for the class under the component/
|
||||
* directory, and it will then fallback to the framework/ directory if not
|
||||
* found before giving up.
|
||||
*
|
||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see https://www.php-fig.org/psr/psr-0/
|
||||
* @see https://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
private $vendorDir;
|
||||
|
||||
// PSR-4
|
||||
private $prefixLengthsPsr4 = array();
|
||||
private $prefixDirsPsr4 = array();
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
private $prefixesPsr0 = array();
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoritative = false;
|
||||
private $missingClasses = array();
|
||||
private $apcuPrefix;
|
||||
|
||||
private static $registeredLoaders = array();
|
||||
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
$this->vendorDir = $vendorDir;
|
||||
}
|
||||
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
return $this->prefixDirsPsr4;
|
||||
}
|
||||
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
return $this->fallbackDirsPsr0;
|
||||
}
|
||||
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
return $this->fallbackDirsPsr4;
|
||||
}
|
||||
|
||||
public function getClassMap()
|
||||
{
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap Class to filename map
|
||||
*/
|
||||
public function addClassMap(array $classMap)
|
||||
{
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
} else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
// Register directories for a new namespace.
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 base directories
|
||||
*/
|
||||
public function set($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr0 = (array) $paths;
|
||||
} else {
|
||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function setPsr4($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr4 = (array) $paths;
|
||||
} else {
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath)
|
||||
{
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath()
|
||||
{
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isClassMapAuthoritative()
|
||||
{
|
||||
return $this->classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||
*
|
||||
* @param string|null $apcuPrefix
|
||||
*/
|
||||
public function setApcuPrefix($apcuPrefix)
|
||||
{
|
||||
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getApcuPrefix()
|
||||
{
|
||||
return $this->apcuPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*
|
||||
* @param bool $prepend Whether to prepend the autoloader or not
|
||||
*/
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
|
||||
if (null === $this->vendorDir) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||
} else {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
|
||||
if (null !== $this->vendorDir) {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
* @return bool|null True if loaded, null otherwise
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
*
|
||||
* @return string|false The path if found, false otherwise
|
||||
*/
|
||||
public function findFile($class)
|
||||
{
|
||||
// class map lookup
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||
return false;
|
||||
}
|
||||
if (null !== $this->apcuPrefix) {
|
||||
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||
if ($hit) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
$file = $this->findFileWithExtension($class, '.php');
|
||||
|
||||
// Search for Hack files if we are running on HHVM
|
||||
if (false === $file && defined('HHVM_VERSION')) {
|
||||
$file = $this->findFileWithExtension($class, '.hh');
|
||||
}
|
||||
|
||||
if (null !== $this->apcuPrefix) {
|
||||
apcu_add($this->apcuPrefix.$class, $file);
|
||||
}
|
||||
|
||||
if (false === $file) {
|
||||
// Remember that this class does not exist.
|
||||
$this->missingClasses[$class] = true;
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
||||
*
|
||||
* @return self[]
|
||||
*/
|
||||
public static function getRegisteredLoaders()
|
||||
{
|
||||
return self::$registeredLoaders;
|
||||
}
|
||||
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||
|
||||
$first = $class[0];
|
||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||
$subPath = $class;
|
||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||
$subPath = substr($subPath, 0, $lastPos);
|
||||
$search = $subPath . '\\';
|
||||
if (isset($this->prefixDirsPsr4[$search])) {
|
||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||
if (file_exists($file = $dir . $pathEnd)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-4 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 lookup
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||
} else {
|
||||
// PEAR-like class name
|
||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||
}
|
||||
|
||||
if (isset($this->prefixesPsr0[$first])) {
|
||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 include paths.
|
||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*/
|
||||
function includeFile($file)
|
||||
{
|
||||
include $file;
|
||||
}
|
||||
@@ -0,0 +1,569 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed = array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.7',
|
||||
'version' => '2.0.7.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => NULL,
|
||||
'name' => 'yoomoney/yookassa-sdk-php',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'cordoval/hamcrest-php' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'davedevelopment/hamcrest-php' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'doctrine/instantiator' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
|
||||
),
|
||||
'hamcrest/hamcrest-php' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.2.2',
|
||||
'version' => '1.2.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'b37020aa976fa52d3de9aa904aa2522dc518f79c',
|
||||
),
|
||||
'kodova/hamcrest-php' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'mockery/mockery' =>
|
||||
array (
|
||||
'pretty_version' => '0.9.11',
|
||||
'version' => '0.9.11.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'be9bf28d8e57d67883cba9fcadfcff8caab667f8',
|
||||
),
|
||||
'myclabs/deep-copy' =>
|
||||
array (
|
||||
'pretty_version' => '1.10.2',
|
||||
'version' => '1.10.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '1.10.2',
|
||||
),
|
||||
),
|
||||
'phpdocumentor/reflection-common' =>
|
||||
array (
|
||||
'pretty_version' => '2.2.0',
|
||||
'version' => '2.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
|
||||
),
|
||||
'phpdocumentor/reflection-docblock' =>
|
||||
array (
|
||||
'pretty_version' => '5.2.2',
|
||||
'version' => '5.2.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
|
||||
),
|
||||
'phpdocumentor/type-resolver' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0',
|
||||
),
|
||||
'phpspec/prophecy' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.10.3',
|
||||
'version' => '1.10.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '451c3cd1418cf640de218914901e51b064abb093',
|
||||
),
|
||||
'phpunit/php-code-coverage' =>
|
||||
array (
|
||||
'pretty_version' => '4.0.8',
|
||||
'version' => '4.0.8.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ef7b2f56815df854e66ceaee8ebe9393ae36a40d',
|
||||
),
|
||||
'phpunit/php-file-iterator' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.5',
|
||||
'version' => '1.4.5.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '730b01bc3e867237eaac355e06a36b85dd93a8b4',
|
||||
),
|
||||
'phpunit/php-text-template' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
|
||||
),
|
||||
'phpunit/php-timer' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.9',
|
||||
'version' => '1.0.9.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f',
|
||||
),
|
||||
'phpunit/php-token-stream' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.2',
|
||||
'version' => '2.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '791198a2c6254db10131eecfe8c06670700904db',
|
||||
),
|
||||
'phpunit/phpunit' =>
|
||||
array (
|
||||
'pretty_version' => '5.7.27',
|
||||
'version' => '5.7.27.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c',
|
||||
),
|
||||
'phpunit/phpunit-mock-objects' =>
|
||||
array (
|
||||
'pretty_version' => '3.4.4',
|
||||
'version' => '3.4.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'a23b761686d50a560cc56233b9ecf49597cc9118',
|
||||
),
|
||||
'psr/log' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.3',
|
||||
'version' => '1.1.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
|
||||
),
|
||||
'sebastian/code-unit-reverse-lookup' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
|
||||
),
|
||||
'sebastian/comparator' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.4',
|
||||
'version' => '1.2.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '2b7424b55f5047b47ac6e5ccb20b2aea4011d9be',
|
||||
),
|
||||
'sebastian/diff' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.3',
|
||||
'version' => '1.4.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '7f066a26a962dbe58ddea9f72a4e82874a3975a4',
|
||||
),
|
||||
'sebastian/environment' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5795ffe5dc5b02460c3e34222fee8cbe245d8fac',
|
||||
),
|
||||
'sebastian/exporter' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4',
|
||||
),
|
||||
'sebastian/global-state' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.1',
|
||||
'version' => '1.1.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bc37d50fea7d017d3d340f230811c9f1d7280af4',
|
||||
),
|
||||
'sebastian/object-enumerator' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1311872ac850040a79c3c058bea3e22d0f09cbb7',
|
||||
),
|
||||
'sebastian/recursion-context' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '2c3ba150cbec723aa057506e73a8d33bdb286c9a',
|
||||
),
|
||||
'sebastian/resource-operations' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.0',
|
||||
'version' => '1.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ce990bb21759f94aeafd30209e8cfcdfa8bc3f52',
|
||||
),
|
||||
'sebastian/version' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
|
||||
),
|
||||
'symfony/polyfill-ctype' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e',
|
||||
),
|
||||
'symfony/yaml' =>
|
||||
array (
|
||||
'pretty_version' => 'v4.4.20',
|
||||
'version' => '4.4.20.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '29e61305e1c79d25f71060903982ead8f533e267',
|
||||
),
|
||||
'webmozart/assert' =>
|
||||
array (
|
||||
'pretty_version' => '1.10.0',
|
||||
'version' => '1.10.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6964c76c7804814a842473e0c8fd15bab0f18e25',
|
||||
),
|
||||
'yoomoney/yookassa-sdk-php' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.7',
|
||||
'version' => '2.0.7.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => NULL,
|
||||
),
|
||||
),
|
||||
);
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function isInstalled($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function getRawData()
|
||||
{
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
|
||||
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
@@ -0,0 +1,543 @@
|
||||
<?php
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
|
||||
'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
|
||||
'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
|
||||
'Hamcrest\\Arrays\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingKey' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',
|
||||
'Hamcrest\\Arrays\\IsArrayWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',
|
||||
'Hamcrest\\Arrays\\MatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',
|
||||
'Hamcrest\\Arrays\\SeriesMatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',
|
||||
'Hamcrest\\AssertionError' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',
|
||||
'Hamcrest\\BaseDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',
|
||||
'Hamcrest\\BaseMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',
|
||||
'Hamcrest\\Collection\\IsEmptyTraversable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',
|
||||
'Hamcrest\\Collection\\IsTraversableWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',
|
||||
'Hamcrest\\Core\\AllOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',
|
||||
'Hamcrest\\Core\\AnyOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',
|
||||
'Hamcrest\\Core\\CombinableMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',
|
||||
'Hamcrest\\Core\\DescribedAs' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',
|
||||
'Hamcrest\\Core\\Every' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',
|
||||
'Hamcrest\\Core\\HasToString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',
|
||||
'Hamcrest\\Core\\Is' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',
|
||||
'Hamcrest\\Core\\IsAnything' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',
|
||||
'Hamcrest\\Core\\IsCollectionContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',
|
||||
'Hamcrest\\Core\\IsEqual' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',
|
||||
'Hamcrest\\Core\\IsIdentical' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',
|
||||
'Hamcrest\\Core\\IsInstanceOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',
|
||||
'Hamcrest\\Core\\IsNot' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',
|
||||
'Hamcrest\\Core\\IsNull' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',
|
||||
'Hamcrest\\Core\\IsSame' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',
|
||||
'Hamcrest\\Core\\IsTypeOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',
|
||||
'Hamcrest\\Core\\Set' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',
|
||||
'Hamcrest\\Core\\ShortcutCombination' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',
|
||||
'Hamcrest\\Description' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',
|
||||
'Hamcrest\\DiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',
|
||||
'Hamcrest\\FeatureMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',
|
||||
'Hamcrest\\Internal\\SelfDescribingValue' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',
|
||||
'Hamcrest\\Matcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',
|
||||
'Hamcrest\\MatcherAssert' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',
|
||||
'Hamcrest\\Matchers' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',
|
||||
'Hamcrest\\NullDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',
|
||||
'Hamcrest\\Number\\IsCloseTo' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',
|
||||
'Hamcrest\\Number\\OrderingComparison' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',
|
||||
'Hamcrest\\SelfDescribing' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',
|
||||
'Hamcrest\\StringDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',
|
||||
'Hamcrest\\Text\\IsEmptyString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',
|
||||
'Hamcrest\\Text\\IsEqualIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',
|
||||
'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',
|
||||
'Hamcrest\\Text\\MatchesPattern' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',
|
||||
'Hamcrest\\Text\\StringContains' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',
|
||||
'Hamcrest\\Text\\StringContainsIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',
|
||||
'Hamcrest\\Text\\StringContainsInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',
|
||||
'Hamcrest\\Text\\StringEndsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',
|
||||
'Hamcrest\\Text\\StringStartsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',
|
||||
'Hamcrest\\Text\\SubstringMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',
|
||||
'Hamcrest\\TypeSafeDiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',
|
||||
'Hamcrest\\TypeSafeMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',
|
||||
'Hamcrest\\Type\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',
|
||||
'Hamcrest\\Type\\IsBoolean' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',
|
||||
'Hamcrest\\Type\\IsCallable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',
|
||||
'Hamcrest\\Type\\IsDouble' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',
|
||||
'Hamcrest\\Type\\IsInteger' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',
|
||||
'Hamcrest\\Type\\IsNumeric' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',
|
||||
'Hamcrest\\Type\\IsObject' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',
|
||||
'Hamcrest\\Type\\IsResource' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',
|
||||
'Hamcrest\\Type\\IsScalar' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',
|
||||
'Hamcrest\\Type\\IsString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',
|
||||
'Hamcrest\\Util' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',
|
||||
'Hamcrest\\Xml\\HasXPath' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',
|
||||
'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/Assert.php',
|
||||
'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/AssertionFailedError.php',
|
||||
'PHPUnit\\Framework\\BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/BaseTestListener.php',
|
||||
'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/Test.php',
|
||||
'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestCase.php',
|
||||
'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestListener.php',
|
||||
'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestSuite.php',
|
||||
'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
|
||||
'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
|
||||
'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
|
||||
'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
|
||||
'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
|
||||
'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
|
||||
'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/src/Extensions/TicketListener.php',
|
||||
'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
|
||||
'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
|
||||
'PHPUnit_Framework_BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
|
||||
'PHPUnit_Framework_CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
|
||||
'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint.php',
|
||||
'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/And.php',
|
||||
'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
|
||||
'PHPUnit_Framework_Constraint_ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
|
||||
'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
|
||||
'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
||||
'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
|
||||
'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
|
||||
'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
|
||||
'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
|
||||
'PHPUnit_Framework_Constraint_DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
|
||||
'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
|
||||
'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
|
||||
'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
|
||||
'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
|
||||
'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
|
||||
'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
|
||||
'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
||||
'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
|
||||
'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
|
||||
'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
|
||||
'PHPUnit_Framework_Constraint_IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
|
||||
'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
||||
'PHPUnit_Framework_Constraint_IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
|
||||
'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
|
||||
'PHPUnit_Framework_Constraint_IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
|
||||
'PHPUnit_Framework_Constraint_IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
|
||||
'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
|
||||
'PHPUnit_Framework_Constraint_IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
|
||||
'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
|
||||
'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
|
||||
'PHPUnit_Framework_Constraint_IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
|
||||
'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
||||
'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
|
||||
'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
|
||||
'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
|
||||
'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
|
||||
'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
|
||||
'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
|
||||
'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
|
||||
'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
|
||||
'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
|
||||
'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
|
||||
'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
|
||||
'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
|
||||
'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
|
||||
'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
|
||||
'PHPUnit_Framework_CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',
|
||||
'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error.php',
|
||||
'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
||||
'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
||||
'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
||||
'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',
|
||||
'PHPUnit_Framework_ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
||||
'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
|
||||
'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
||||
'PHPUnit_Framework_IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
||||
'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
|
||||
'PHPUnit_Framework_InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
|
||||
'PHPUnit_Framework_MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',
|
||||
'PHPUnit_Framework_MockObject_BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
|
||||
'PHPUnit_Framework_MockObject_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
|
||||
'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
|
||||
'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
|
||||
'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
|
||||
'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
|
||||
'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
|
||||
'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
|
||||
'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
|
||||
'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
|
||||
'PHPUnit_Framework_MockObject_RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
|
||||
'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnReference' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnReference.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
|
||||
'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
|
||||
'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',
|
||||
'PHPUnit_Framework_RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',
|
||||
'PHPUnit_Framework_RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
|
||||
'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
||||
'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
||||
'PHPUnit_Framework_SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
||||
'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
|
||||
'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
|
||||
'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',
|
||||
'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
|
||||
'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
|
||||
'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
||||
'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
|
||||
'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
|
||||
'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
||||
'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
|
||||
'PHPUnit_Framework_UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
|
||||
'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',
|
||||
'PHPUnit_Framework_WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
||||
'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
||||
'PHPUnit_Runner_Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
|
||||
'PHPUnit_Runner_Filter_Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
||||
'PHPUnit_Runner_Filter_GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group.php',
|
||||
'PHPUnit_Runner_Filter_Group_Exclude' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
|
||||
'PHPUnit_Runner_Filter_Group_Include' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
|
||||
'PHPUnit_Runner_Filter_Test' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Test.php',
|
||||
'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
||||
'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
||||
'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
|
||||
'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
|
||||
'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
||||
'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
||||
'PHPUnit_Util_Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
|
||||
'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',
|
||||
'PHPUnit_Util_ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
|
||||
'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
||||
'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php',
|
||||
'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
|
||||
'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
|
||||
'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',
|
||||
'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
|
||||
'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
|
||||
'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JSON.php',
|
||||
'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
||||
'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TAP.php',
|
||||
'PHPUnit_Util_Log_TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
||||
'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/src/Util/PHP.php',
|
||||
'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Default.php',
|
||||
'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Windows.php',
|
||||
'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
|
||||
'PHPUnit_Util_Regex' => $vendorDir . '/phpunit/phpunit/src/Util/Regex.php',
|
||||
'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/src/Util/String.php',
|
||||
'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
|
||||
'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter_XML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/XML.php',
|
||||
'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
|
||||
'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
|
||||
'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/src/Util/XML.php',
|
||||
'PHP_Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
|
||||
'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ASYNC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AWAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COMPILER_HALT_OFFSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENUM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EQUALS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ONUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SUPER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',
|
||||
'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
|
||||
'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_WHERE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_ATTRIBUTE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_CATEGORY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_CATEGORY_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_CHILDREN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_REQUIRED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_TAG_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_TAG_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_TEXT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/HHVM.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',
|
||||
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
||||
'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php',
|
||||
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
||||
'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
|
||||
'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
|
||||
'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
|
||||
'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
|
||||
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
||||
'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
|
||||
'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
|
||||
'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
|
||||
'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
|
||||
'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => $vendorDir . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
|
||||
'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
|
||||
'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
|
||||
'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
|
||||
'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
|
||||
'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
|
||||
'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
|
||||
'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
|
||||
'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
|
||||
'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',
|
||||
'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/Exception.php',
|
||||
'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
|
||||
'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/RuntimeException.php',
|
||||
'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
|
||||
'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
|
||||
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',
|
||||
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
|
||||
'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
|
||||
);
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
// autoload_files.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'1d1b89d124cc9cb8219922c9d5569199' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest.php',
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
);
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Mockery' => array($vendorDir . '/mockery/mockery/library'),
|
||||
);
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'),
|
||||
'YooKassa\\' => array($baseDir . '/lib'),
|
||||
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
|
||||
'Tests\\YooKassa\\' => array($baseDir . '/tests'),
|
||||
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
|
||||
'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
|
||||
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
|
||||
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
|
||||
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
|
||||
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
|
||||
);
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitdc95a8937466587a1b2e95921c723b74
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class)
|
||||
{
|
||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
||||
require __DIR__ . '/ClassLoader.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Composer\Autoload\ClassLoader
|
||||
*/
|
||||
public static function getLoader()
|
||||
{
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
require __DIR__ . '/platform_check.php';
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitdc95a8937466587a1b2e95921c723b74', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitdc95a8937466587a1b2e95921c723b74', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitdc95a8937466587a1b2e95921c723b74::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->set($namespace, $path);
|
||||
}
|
||||
|
||||
$map = require __DIR__ . '/autoload_psr4.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->setPsr4($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
}
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitdc95a8937466587a1b2e95921c723b74::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequiredc95a8937466587a1b2e95921c723b74($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequiredc95a8937466587a1b2e95921c723b74($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,651 @@
|
||||
<?php
|
||||
|
||||
// autoload_static.php @generated by Composer
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitdc95a8937466587a1b2e95921c723b74
|
||||
{
|
||||
public static $files = array (
|
||||
'1d1b89d124cc9cb8219922c9d5569199' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest.php',
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
'p' =>
|
||||
array (
|
||||
'phpDocumentor\\Reflection\\' => 25,
|
||||
),
|
||||
'Y' =>
|
||||
array (
|
||||
'YooKassa\\' => 9,
|
||||
),
|
||||
'W' =>
|
||||
array (
|
||||
'Webmozart\\Assert\\' => 17,
|
||||
),
|
||||
'T' =>
|
||||
array (
|
||||
'Tests\\YooKassa\\' => 15,
|
||||
),
|
||||
'S' =>
|
||||
array (
|
||||
'Symfony\\Polyfill\\Ctype\\' => 23,
|
||||
'Symfony\\Component\\Yaml\\' => 23,
|
||||
),
|
||||
'P' =>
|
||||
array (
|
||||
'Psr\\Log\\' => 8,
|
||||
'Prophecy\\' => 9,
|
||||
),
|
||||
'D' =>
|
||||
array (
|
||||
'Doctrine\\Instantiator\\' => 22,
|
||||
'DeepCopy\\' => 9,
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixDirsPsr4 = array (
|
||||
'phpDocumentor\\Reflection\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
|
||||
1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
|
||||
2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
|
||||
),
|
||||
'YooKassa\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/../..' . '/lib',
|
||||
),
|
||||
'Webmozart\\Assert\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/webmozart/assert/src',
|
||||
),
|
||||
'Tests\\YooKassa\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/../..' . '/tests',
|
||||
),
|
||||
'Symfony\\Polyfill\\Ctype\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
|
||||
),
|
||||
'Symfony\\Component\\Yaml\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/yaml',
|
||||
),
|
||||
'Psr\\Log\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
|
||||
),
|
||||
'Prophecy\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',
|
||||
),
|
||||
'Doctrine\\Instantiator\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
|
||||
),
|
||||
'DeepCopy\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixesPsr0 = array (
|
||||
'M' =>
|
||||
array (
|
||||
'Mockery' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/mockery/mockery/library',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',
|
||||
'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',
|
||||
'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',
|
||||
'Hamcrest\\Arrays\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingKey' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',
|
||||
'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',
|
||||
'Hamcrest\\Arrays\\IsArrayWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',
|
||||
'Hamcrest\\Arrays\\MatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',
|
||||
'Hamcrest\\Arrays\\SeriesMatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',
|
||||
'Hamcrest\\AssertionError' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',
|
||||
'Hamcrest\\BaseDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',
|
||||
'Hamcrest\\BaseMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',
|
||||
'Hamcrest\\Collection\\IsEmptyTraversable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',
|
||||
'Hamcrest\\Collection\\IsTraversableWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',
|
||||
'Hamcrest\\Core\\AllOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',
|
||||
'Hamcrest\\Core\\AnyOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',
|
||||
'Hamcrest\\Core\\CombinableMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',
|
||||
'Hamcrest\\Core\\DescribedAs' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',
|
||||
'Hamcrest\\Core\\Every' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',
|
||||
'Hamcrest\\Core\\HasToString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',
|
||||
'Hamcrest\\Core\\Is' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',
|
||||
'Hamcrest\\Core\\IsAnything' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',
|
||||
'Hamcrest\\Core\\IsCollectionContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',
|
||||
'Hamcrest\\Core\\IsEqual' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',
|
||||
'Hamcrest\\Core\\IsIdentical' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',
|
||||
'Hamcrest\\Core\\IsInstanceOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',
|
||||
'Hamcrest\\Core\\IsNot' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',
|
||||
'Hamcrest\\Core\\IsNull' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',
|
||||
'Hamcrest\\Core\\IsSame' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',
|
||||
'Hamcrest\\Core\\IsTypeOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',
|
||||
'Hamcrest\\Core\\Set' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',
|
||||
'Hamcrest\\Core\\ShortcutCombination' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',
|
||||
'Hamcrest\\Description' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',
|
||||
'Hamcrest\\DiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',
|
||||
'Hamcrest\\FeatureMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',
|
||||
'Hamcrest\\Internal\\SelfDescribingValue' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',
|
||||
'Hamcrest\\Matcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',
|
||||
'Hamcrest\\MatcherAssert' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',
|
||||
'Hamcrest\\Matchers' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',
|
||||
'Hamcrest\\NullDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',
|
||||
'Hamcrest\\Number\\IsCloseTo' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',
|
||||
'Hamcrest\\Number\\OrderingComparison' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',
|
||||
'Hamcrest\\SelfDescribing' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',
|
||||
'Hamcrest\\StringDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',
|
||||
'Hamcrest\\Text\\IsEmptyString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',
|
||||
'Hamcrest\\Text\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',
|
||||
'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',
|
||||
'Hamcrest\\Text\\MatchesPattern' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',
|
||||
'Hamcrest\\Text\\StringContains' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',
|
||||
'Hamcrest\\Text\\StringContainsIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',
|
||||
'Hamcrest\\Text\\StringContainsInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',
|
||||
'Hamcrest\\Text\\StringEndsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',
|
||||
'Hamcrest\\Text\\StringStartsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',
|
||||
'Hamcrest\\Text\\SubstringMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',
|
||||
'Hamcrest\\TypeSafeDiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',
|
||||
'Hamcrest\\TypeSafeMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',
|
||||
'Hamcrest\\Type\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',
|
||||
'Hamcrest\\Type\\IsBoolean' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',
|
||||
'Hamcrest\\Type\\IsCallable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',
|
||||
'Hamcrest\\Type\\IsDouble' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',
|
||||
'Hamcrest\\Type\\IsInteger' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',
|
||||
'Hamcrest\\Type\\IsNumeric' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',
|
||||
'Hamcrest\\Type\\IsObject' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',
|
||||
'Hamcrest\\Type\\IsResource' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',
|
||||
'Hamcrest\\Type\\IsScalar' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',
|
||||
'Hamcrest\\Type\\IsString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',
|
||||
'Hamcrest\\Util' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',
|
||||
'Hamcrest\\Xml\\HasXPath' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',
|
||||
'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/Assert.php',
|
||||
'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/AssertionFailedError.php',
|
||||
'PHPUnit\\Framework\\BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/BaseTestListener.php',
|
||||
'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/Test.php',
|
||||
'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestCase.php',
|
||||
'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestListener.php',
|
||||
'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestSuite.php',
|
||||
'PHPUnit_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
|
||||
'PHPUnit_Extensions_GroupTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
|
||||
'PHPUnit_Extensions_PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
|
||||
'PHPUnit_Extensions_PhptTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
|
||||
'PHPUnit_Extensions_RepeatedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
|
||||
'PHPUnit_Extensions_TestDecorator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
|
||||
'PHPUnit_Extensions_TicketListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TicketListener.php',
|
||||
'PHPUnit_Framework_Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
|
||||
'PHPUnit_Framework_AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
|
||||
'PHPUnit_Framework_BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
|
||||
'PHPUnit_Framework_CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
|
||||
'PHPUnit_Framework_Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint.php',
|
||||
'PHPUnit_Framework_Constraint_And' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/And.php',
|
||||
'PHPUnit_Framework_Constraint_ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
|
||||
'PHPUnit_Framework_Constraint_ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
|
||||
'PHPUnit_Framework_Constraint_Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
|
||||
'PHPUnit_Framework_Constraint_Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
||||
'PHPUnit_Framework_Constraint_ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
|
||||
'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
|
||||
'PHPUnit_Framework_Constraint_Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
|
||||
'PHPUnit_Framework_Constraint_Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
|
||||
'PHPUnit_Framework_Constraint_DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
|
||||
'PHPUnit_Framework_Constraint_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
|
||||
'PHPUnit_Framework_Constraint_ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
|
||||
'PHPUnit_Framework_Constraint_ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
|
||||
'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
|
||||
'PHPUnit_Framework_Constraint_FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
|
||||
'PHPUnit_Framework_Constraint_GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
|
||||
'PHPUnit_Framework_Constraint_IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
||||
'PHPUnit_Framework_Constraint_IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
|
||||
'PHPUnit_Framework_Constraint_IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
|
||||
'PHPUnit_Framework_Constraint_IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
|
||||
'PHPUnit_Framework_Constraint_IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
|
||||
'PHPUnit_Framework_Constraint_IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
||||
'PHPUnit_Framework_Constraint_IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
|
||||
'PHPUnit_Framework_Constraint_IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
|
||||
'PHPUnit_Framework_Constraint_IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
|
||||
'PHPUnit_Framework_Constraint_IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
|
||||
'PHPUnit_Framework_Constraint_IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
|
||||
'PHPUnit_Framework_Constraint_IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
|
||||
'PHPUnit_Framework_Constraint_IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
|
||||
'PHPUnit_Framework_Constraint_IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
|
||||
'PHPUnit_Framework_Constraint_IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
|
||||
'PHPUnit_Framework_Constraint_JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
||||
'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
|
||||
'PHPUnit_Framework_Constraint_LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
|
||||
'PHPUnit_Framework_Constraint_Not' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
|
||||
'PHPUnit_Framework_Constraint_ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
|
||||
'PHPUnit_Framework_Constraint_Or' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
|
||||
'PHPUnit_Framework_Constraint_PCREMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
|
||||
'PHPUnit_Framework_Constraint_SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
|
||||
'PHPUnit_Framework_Constraint_StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
|
||||
'PHPUnit_Framework_Constraint_StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
|
||||
'PHPUnit_Framework_Constraint_StringMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
|
||||
'PHPUnit_Framework_Constraint_StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
|
||||
'PHPUnit_Framework_Constraint_TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
|
||||
'PHPUnit_Framework_Constraint_TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
|
||||
'PHPUnit_Framework_Constraint_Xor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
|
||||
'PHPUnit_Framework_CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',
|
||||
'PHPUnit_Framework_Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error.php',
|
||||
'PHPUnit_Framework_Error_Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
||||
'PHPUnit_Framework_Error_Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
||||
'PHPUnit_Framework_Error_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
||||
'PHPUnit_Framework_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php',
|
||||
'PHPUnit_Framework_ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
||||
'PHPUnit_Framework_ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
|
||||
'PHPUnit_Framework_IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
||||
'PHPUnit_Framework_IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
||||
'PHPUnit_Framework_IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
|
||||
'PHPUnit_Framework_InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
|
||||
'PHPUnit_Framework_MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',
|
||||
'PHPUnit_Framework_MockObject_BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Namespace' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
|
||||
'PHPUnit_Framework_MockObject_Builder_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
|
||||
'PHPUnit_Framework_MockObject_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
|
||||
'PHPUnit_Framework_MockObject_Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
|
||||
'PHPUnit_Framework_MockObject_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
|
||||
'PHPUnit_Framework_MockObject_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
|
||||
'PHPUnit_Framework_MockObject_Invocation_Object' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
|
||||
'PHPUnit_Framework_MockObject_Invocation_Static' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
|
||||
'PHPUnit_Framework_MockObject_Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
|
||||
'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
|
||||
'PHPUnit_Framework_MockObject_MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
|
||||
'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
|
||||
'PHPUnit_Framework_MockObject_RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
|
||||
'PHPUnit_Framework_MockObject_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_Return' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnReference.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
|
||||
'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
|
||||
'PHPUnit_Framework_MockObject_Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
|
||||
'PHPUnit_Framework_OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php',
|
||||
'PHPUnit_Framework_RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php',
|
||||
'PHPUnit_Framework_RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
|
||||
'PHPUnit_Framework_SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
||||
'PHPUnit_Framework_SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
||||
'PHPUnit_Framework_SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
||||
'PHPUnit_Framework_SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
|
||||
'PHPUnit_Framework_SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
|
||||
'PHPUnit_Framework_SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php',
|
||||
'PHPUnit_Framework_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',
|
||||
'PHPUnit_Framework_TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',
|
||||
'PHPUnit_Framework_TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
||||
'PHPUnit_Framework_TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',
|
||||
'PHPUnit_Framework_TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',
|
||||
'PHPUnit_Framework_TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
||||
'PHPUnit_Framework_TestSuite_DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
|
||||
'PHPUnit_Framework_UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
|
||||
'PHPUnit_Framework_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php',
|
||||
'PHPUnit_Framework_WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
||||
'PHPUnit_Runner_BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
||||
'PHPUnit_Runner_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',
|
||||
'PHPUnit_Runner_Filter_Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
||||
'PHPUnit_Runner_Filter_GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group.php',
|
||||
'PHPUnit_Runner_Filter_Group_Exclude' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
|
||||
'PHPUnit_Runner_Filter_Group_Include' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
|
||||
'PHPUnit_Runner_Filter_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Test.php',
|
||||
'PHPUnit_Runner_StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
||||
'PHPUnit_Runner_TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
||||
'PHPUnit_Runner_Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',
|
||||
'PHPUnit_TextUI_Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',
|
||||
'PHPUnit_TextUI_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
||||
'PHPUnit_TextUI_TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
||||
'PHPUnit_Util_Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
|
||||
'PHPUnit_Util_Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php',
|
||||
'PHPUnit_Util_ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
|
||||
'PHPUnit_Util_ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
||||
'PHPUnit_Util_Fileloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php',
|
||||
'PHPUnit_Util_Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
|
||||
'PHPUnit_Util_Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
|
||||
'PHPUnit_Util_Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php',
|
||||
'PHPUnit_Util_GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
|
||||
'PHPUnit_Util_InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
|
||||
'PHPUnit_Util_Log_JSON' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JSON.php',
|
||||
'PHPUnit_Util_Log_JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
||||
'PHPUnit_Util_Log_TAP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TAP.php',
|
||||
'PHPUnit_Util_Log_TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
||||
'PHPUnit_Util_PHP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP.php',
|
||||
'PHPUnit_Util_PHP_Default' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Default.php',
|
||||
'PHPUnit_Util_PHP_Windows' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Windows.php',
|
||||
'PHPUnit_Util_Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',
|
||||
'PHPUnit_Util_Regex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Regex.php',
|
||||
'PHPUnit_Util_String' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/String.php',
|
||||
'PHPUnit_Util_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',
|
||||
'PHPUnit_Util_TestDox_NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter_HTML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter_Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
|
||||
'PHPUnit_Util_TestDox_ResultPrinter_XML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/XML.php',
|
||||
'PHPUnit_Util_TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
|
||||
'PHPUnit_Util_Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',
|
||||
'PHPUnit_Util_XML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XML.php',
|
||||
'PHP_Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
|
||||
'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ASYNC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_AWAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_COMPILER_HALT_OFFSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ENUM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EQUALS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_JOIN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LAMBDA_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LAMBDA_CP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LAMBDA_OP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_ONUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SHAPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SUPER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php',
|
||||
'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
|
||||
'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TYPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TYPELIST_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_TYPELIST_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_WHERE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_ATTRIBUTE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_CATEGORY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_CATEGORY_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_CHILDREN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_REQUIRED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_TAG_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_TAG_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XHP_TEXT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/HHVM.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php',
|
||||
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
||||
'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
||||
'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php',
|
||||
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
||||
'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',
|
||||
'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',
|
||||
'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',
|
||||
'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',
|
||||
'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',
|
||||
'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',
|
||||
'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',
|
||||
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
||||
'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',
|
||||
'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',
|
||||
'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',
|
||||
'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',
|
||||
'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
|
||||
'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
|
||||
'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
|
||||
'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',
|
||||
'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',
|
||||
'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',
|
||||
'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',
|
||||
'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',
|
||||
'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php',
|
||||
'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',
|
||||
'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/Exception.php',
|
||||
'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',
|
||||
'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/RuntimeException.php',
|
||||
'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php',
|
||||
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',
|
||||
'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',
|
||||
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
||||
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',
|
||||
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
|
||||
'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitdc95a8937466587a1b2e95921c723b74::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitdc95a8937466587a1b2e95921c723b74::$prefixDirsPsr4;
|
||||
$loader->prefixesPsr0 = ComposerStaticInitdc95a8937466587a1b2e95921c723b74::$prefixesPsr0;
|
||||
$loader->classMap = ComposerStaticInitdc95a8937466587a1b2e95921c723b74::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
}
|
||||
+1832
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,310 @@
|
||||
<?php return array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.7',
|
||||
'version' => '2.0.7.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => NULL,
|
||||
'name' => 'yoomoney/yookassa-sdk-php',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'cordoval/hamcrest-php' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'davedevelopment/hamcrest-php' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'doctrine/instantiator' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
|
||||
),
|
||||
'hamcrest/hamcrest-php' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.2.2',
|
||||
'version' => '1.2.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'b37020aa976fa52d3de9aa904aa2522dc518f79c',
|
||||
),
|
||||
'kodova/hamcrest-php' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'mockery/mockery' =>
|
||||
array (
|
||||
'pretty_version' => '0.9.11',
|
||||
'version' => '0.9.11.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'be9bf28d8e57d67883cba9fcadfcff8caab667f8',
|
||||
),
|
||||
'myclabs/deep-copy' =>
|
||||
array (
|
||||
'pretty_version' => '1.10.2',
|
||||
'version' => '1.10.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '1.10.2',
|
||||
),
|
||||
),
|
||||
'phpdocumentor/reflection-common' =>
|
||||
array (
|
||||
'pretty_version' => '2.2.0',
|
||||
'version' => '2.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
|
||||
),
|
||||
'phpdocumentor/reflection-docblock' =>
|
||||
array (
|
||||
'pretty_version' => '5.2.2',
|
||||
'version' => '5.2.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
|
||||
),
|
||||
'phpdocumentor/type-resolver' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0',
|
||||
),
|
||||
'phpspec/prophecy' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.10.3',
|
||||
'version' => '1.10.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '451c3cd1418cf640de218914901e51b064abb093',
|
||||
),
|
||||
'phpunit/php-code-coverage' =>
|
||||
array (
|
||||
'pretty_version' => '4.0.8',
|
||||
'version' => '4.0.8.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ef7b2f56815df854e66ceaee8ebe9393ae36a40d',
|
||||
),
|
||||
'phpunit/php-file-iterator' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.5',
|
||||
'version' => '1.4.5.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '730b01bc3e867237eaac355e06a36b85dd93a8b4',
|
||||
),
|
||||
'phpunit/php-text-template' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
|
||||
),
|
||||
'phpunit/php-timer' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.9',
|
||||
'version' => '1.0.9.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f',
|
||||
),
|
||||
'phpunit/php-token-stream' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.2',
|
||||
'version' => '2.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '791198a2c6254db10131eecfe8c06670700904db',
|
||||
),
|
||||
'phpunit/phpunit' =>
|
||||
array (
|
||||
'pretty_version' => '5.7.27',
|
||||
'version' => '5.7.27.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c',
|
||||
),
|
||||
'phpunit/phpunit-mock-objects' =>
|
||||
array (
|
||||
'pretty_version' => '3.4.4',
|
||||
'version' => '3.4.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'a23b761686d50a560cc56233b9ecf49597cc9118',
|
||||
),
|
||||
'psr/log' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.3',
|
||||
'version' => '1.1.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
|
||||
),
|
||||
'sebastian/code-unit-reverse-lookup' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
|
||||
),
|
||||
'sebastian/comparator' =>
|
||||
array (
|
||||
'pretty_version' => '1.2.4',
|
||||
'version' => '1.2.4.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '2b7424b55f5047b47ac6e5ccb20b2aea4011d9be',
|
||||
),
|
||||
'sebastian/diff' =>
|
||||
array (
|
||||
'pretty_version' => '1.4.3',
|
||||
'version' => '1.4.3.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '7f066a26a962dbe58ddea9f72a4e82874a3975a4',
|
||||
),
|
||||
'sebastian/environment' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5795ffe5dc5b02460c3e34222fee8cbe245d8fac',
|
||||
),
|
||||
'sebastian/exporter' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4',
|
||||
),
|
||||
'sebastian/global-state' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.1',
|
||||
'version' => '1.1.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'bc37d50fea7d017d3d340f230811c9f1d7280af4',
|
||||
),
|
||||
'sebastian/object-enumerator' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '1311872ac850040a79c3c058bea3e22d0f09cbb7',
|
||||
),
|
||||
'sebastian/recursion-context' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '2c3ba150cbec723aa057506e73a8d33bdb286c9a',
|
||||
),
|
||||
'sebastian/resource-operations' =>
|
||||
array (
|
||||
'pretty_version' => '1.0.0',
|
||||
'version' => '1.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ce990bb21759f94aeafd30209e8cfcdfa8bc3f52',
|
||||
),
|
||||
'sebastian/version' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.1',
|
||||
'version' => '2.0.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
|
||||
),
|
||||
'symfony/polyfill-ctype' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e',
|
||||
),
|
||||
'symfony/yaml' =>
|
||||
array (
|
||||
'pretty_version' => 'v4.4.20',
|
||||
'version' => '4.4.20.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '29e61305e1c79d25f71060903982ead8f533e267',
|
||||
),
|
||||
'webmozart/assert' =>
|
||||
array (
|
||||
'pretty_version' => '1.10.0',
|
||||
'version' => '1.10.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '6964c76c7804814a842473e0c8fd15bab0f18e25',
|
||||
),
|
||||
'yoomoney/yookassa-sdk-php' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.7',
|
||||
'version' => '2.0.7.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => NULL,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
// platform_check.php @generated by Composer
|
||||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 50300)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.0". You are running ' . PHP_VERSION . '.';
|
||||
}
|
||||
|
||||
if ($issues) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
||||
} elseif (!headers_sent()) {
|
||||
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"active": true,
|
||||
"name": "Instantiator",
|
||||
"slug": "instantiator",
|
||||
"docsSlug": "doctrine-instantiator",
|
||||
"codePath": "/src",
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.4",
|
||||
"branchName": "master",
|
||||
"slug": "latest",
|
||||
"upcoming": true
|
||||
},
|
||||
{
|
||||
"name": "1.3",
|
||||
"branchName": "1.3.x",
|
||||
"slug": "1.3",
|
||||
"aliases": [
|
||||
"current",
|
||||
"stable"
|
||||
],
|
||||
"maintained": true,
|
||||
"current": true
|
||||
},
|
||||
{
|
||||
"name": "1.2",
|
||||
"branchName": "1.2.x",
|
||||
"slug": "1.2"
|
||||
},
|
||||
{
|
||||
"name": "1.1",
|
||||
"branchName": "1.1.x",
|
||||
"slug": "1.1"
|
||||
},
|
||||
{
|
||||
"name": "1.0",
|
||||
"branchName": "1.0.x",
|
||||
"slug": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
patreon: phpdoctrine
|
||||
tidelift: packagist/doctrine%2Finstantiator
|
||||
custom: https://www.doctrine-project.org/sponsorship.html
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
|
||||
name: "Coding Standards"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
coding-standards:
|
||||
name: "Coding Standards"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
coverage: "none"
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
tools: "cs2pr"
|
||||
|
||||
- name: "Cache dependencies installed with Composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with Composer"
|
||||
run: "composer install --no-interaction --no-progress"
|
||||
|
||||
# https://github.com/doctrine/.github/issues/3
|
||||
- name: "Run PHP_CodeSniffer"
|
||||
run: "vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr"
|
||||
Vendored
+91
@@ -0,0 +1,91 @@
|
||||
|
||||
name: "Continuous Integration"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
fail-fast: true
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
phpunit:
|
||||
name: "PHPUnit with SQLite"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.1"
|
||||
- "7.2"
|
||||
- "7.3"
|
||||
- "7.4"
|
||||
- "8.0"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: "Install PHP with XDebug"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
if: "${{ matrix.php-version == '7.1' }}"
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "xdebug"
|
||||
ini-values: "zend.assertions=1"
|
||||
|
||||
- name: "Install PHP with PCOV"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
if: "${{ matrix.php-version != '7.1' }}"
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "pcov"
|
||||
ini-values: "zend.assertions=1"
|
||||
|
||||
- name: "Cache dependencies installed with composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress"
|
||||
|
||||
- name: "Run PHPUnit"
|
||||
run: "vendor/bin/phpunit --coverage-clover=coverage.xml"
|
||||
|
||||
- name: "Upload coverage file"
|
||||
uses: "actions/upload-artifact@v2"
|
||||
with:
|
||||
name: "phpunit-${{ matrix.php-version }}.coverage"
|
||||
path: "coverage.xml"
|
||||
|
||||
upload_coverage:
|
||||
name: "Upload coverage to Codecov"
|
||||
runs-on: "ubuntu-20.04"
|
||||
needs:
|
||||
- "phpunit"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: "Download coverage files"
|
||||
uses: "actions/download-artifact@v2"
|
||||
with:
|
||||
path: "reports"
|
||||
|
||||
- name: "Upload to Codecov"
|
||||
uses: "codecov/codecov-action@v1"
|
||||
with:
|
||||
directory: reports
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
|
||||
name: "Performance benchmark"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
fail-fast: true
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
phpbench:
|
||||
name: "PHPBench"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "pcov"
|
||||
ini-values: "zend.assertions=1"
|
||||
|
||||
- name: "Cache dependencies installed with composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress"
|
||||
|
||||
- name: "Run PHPBench"
|
||||
run: "php ./vendor/bin/phpbench run --iterations=3 --warmup=1 --report=aggregate"
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
name: "Automatic Releases"
|
||||
|
||||
on:
|
||||
milestone:
|
||||
types:
|
||||
- "closed"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: "Git tag, release & create merge-up PR"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Release"
|
||||
uses: "laminas/automatic-releases@v1"
|
||||
with:
|
||||
command-name: "laminas:automatic-releases:release"
|
||||
env:
|
||||
"GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
|
||||
"SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
|
||||
"GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
|
||||
"GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
|
||||
|
||||
- name: "Create Merge-Up Pull Request"
|
||||
uses: "laminas/automatic-releases@v1"
|
||||
with:
|
||||
command-name: "laminas:automatic-releases:create-merge-up-pull-request"
|
||||
env:
|
||||
"GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
|
||||
"SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
|
||||
"GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
|
||||
"GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
|
||||
|
||||
- name: "Create new milestones"
|
||||
uses: "laminas/automatic-releases@v1"
|
||||
with:
|
||||
command-name: "laminas:automatic-releases:create-milestones"
|
||||
env:
|
||||
"GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
|
||||
"SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
|
||||
"GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
|
||||
"GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
|
||||
name: "Static Analysis"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "*.x"
|
||||
push:
|
||||
branches:
|
||||
- "*.x"
|
||||
|
||||
env:
|
||||
COMPOSER_ROOT_VERSION: "1.4"
|
||||
|
||||
jobs:
|
||||
static-analysis-phpstan:
|
||||
name: "Static Analysis with PHPStan"
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
coverage: "none"
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
tools: "cs2pr"
|
||||
|
||||
- name: "Cache dependencies installed with composer"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "~/.composer/cache"
|
||||
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
|
||||
restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer install --no-interaction --no-progress"
|
||||
|
||||
- name: "Run a static analysis with phpstan/phpstan"
|
||||
run: "vendor/bin/phpstan analyse --error-format=checkstyle | cs2pr"
|
||||
@@ -0,0 +1,35 @@
|
||||
# Contributing
|
||||
|
||||
* Follow the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard)
|
||||
* The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
|
||||
* Any contribution must provide tests for additional introduced conditions
|
||||
* Any un-confirmed issue needs a failing test case before being accepted
|
||||
* Pull requests must be sent from a new hotfix/feature branch, not from `master`.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the project and run the tests, you need to clone it first:
|
||||
|
||||
```sh
|
||||
$ git clone git://github.com/doctrine/instantiator.git
|
||||
```
|
||||
|
||||
You will then need to run a composer installation:
|
||||
|
||||
```sh
|
||||
$ cd Instantiator
|
||||
$ curl -s https://getcomposer.org/installer | php
|
||||
$ php composer.phar update
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
The PHPUnit version to be used is the one installed as a dev- dependency via composer:
|
||||
|
||||
```sh
|
||||
$ ./vendor/bin/phpunit
|
||||
```
|
||||
|
||||
Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement
|
||||
won't be merged.
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2014 Doctrine Project
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,38 @@
|
||||
# Instantiator
|
||||
|
||||
This library provides a way of avoiding usage of constructors when instantiating PHP classes.
|
||||
|
||||
[](https://travis-ci.org/doctrine/instantiator)
|
||||
[](https://codecov.io/gh/doctrine/instantiator/branch/master)
|
||||
[](https://www.versioneye.com/package/php--doctrine--instantiator)
|
||||
|
||||
[](https://packagist.org/packages/doctrine/instantiator)
|
||||
[](https://packagist.org/packages/doctrine/instantiator)
|
||||
|
||||
## Installation
|
||||
|
||||
The suggested installation method is via [composer](https://getcomposer.org/):
|
||||
|
||||
```sh
|
||||
php composer.phar require "doctrine/instantiator:~1.0.3"
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
The instantiator is able to create new instances of any class without using the constructor or any API of the class
|
||||
itself:
|
||||
|
||||
```php
|
||||
$instantiator = new \Doctrine\Instantiator\Instantiator();
|
||||
|
||||
$instance = $instantiator->instantiate(\My\ClassName\Here::class);
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out!
|
||||
|
||||
## Credits
|
||||
|
||||
This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which
|
||||
has been donated to the doctrine organization, and which is now deprecated in favour of this package.
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
|
||||
"keywords": [
|
||||
"instantiate",
|
||||
"constructor"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "https://ocramius.github.io/"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-phar": "*",
|
||||
"ext-pdo": "*",
|
||||
"doctrine/coding-standard": "^8.0",
|
||||
"phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpstan/phpstan-phpunit": "^0.12",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-0": {
|
||||
"DoctrineTest\\InstantiatorPerformance\\": "tests",
|
||||
"DoctrineTest\\InstantiatorTest\\": "tests",
|
||||
"DoctrineTest\\InstantiatorTestAsset\\": "tests"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
Introduction
|
||||
============
|
||||
|
||||
This library provides a way of avoiding usage of constructors when instantiating PHP classes.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
The suggested installation method is via `composer`_:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ composer require doctrine/instantiator
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
The instantiator is able to create new instances of any class without
|
||||
using the constructor or any API of the class itself:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
<?php
|
||||
|
||||
use Doctrine\Instantiator\Instantiator;
|
||||
use App\Entities\User;
|
||||
|
||||
$instantiator = new Instantiator();
|
||||
|
||||
$user = $instantiator->instantiate(User::class);
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
- Follow the `Doctrine Coding Standard`_
|
||||
- The project will follow strict `object calisthenics`_
|
||||
- Any contribution must provide tests for additional introduced
|
||||
conditions
|
||||
- Any un-confirmed issue needs a failing test case before being
|
||||
accepted
|
||||
- Pull requests must be sent from a new hotfix/feature branch, not from
|
||||
``master``.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
The PHPUnit version to be used is the one installed as a dev- dependency
|
||||
via composer:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ./vendor/bin/phpunit
|
||||
|
||||
Accepted coverage for new contributions is 80%. Any contribution not
|
||||
satisfying this requirement won’t be merged.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
This library was migrated from `ocramius/instantiator`_, which has been
|
||||
donated to the doctrine organization, and which is now deprecated in
|
||||
favour of this package.
|
||||
|
||||
.. _composer: https://getcomposer.org/
|
||||
.. _CONTRIBUTING.md: CONTRIBUTING.md
|
||||
.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator
|
||||
.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard
|
||||
.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php
|
||||
@@ -0,0 +1,4 @@
|
||||
.. toctree::
|
||||
:depth: 3
|
||||
|
||||
index
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"bootstrap": "vendor/autoload.php",
|
||||
"path": "tests/DoctrineTest/InstantiatorPerformance"
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<arg name="basepath" value="."/>
|
||||
<arg name="extensions" value="php"/>
|
||||
<arg name="parallel" value="80"/>
|
||||
<arg name="cache" value=".phpcs-cache"/>
|
||||
<arg name="colors"/>
|
||||
|
||||
<!-- Ignore warnings, show progress of the run and show sniff names -->
|
||||
<arg value="nps"/>
|
||||
|
||||
<file>src</file>
|
||||
<file>tests</file>
|
||||
|
||||
<rule ref="Doctrine">
|
||||
<exclude name="SlevomatCodingStandard.TypeHints.DeclareStrictTypes"/>
|
||||
<exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint"/>
|
||||
<exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint"/>
|
||||
<exclude name="SlevomatCodingStandard.Exceptions.ReferenceThrowableOnly.ReferencedGeneralException"/>
|
||||
</rule>
|
||||
|
||||
<!-- Disable the rules that will require PHP 7.4 -->
|
||||
<rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint">
|
||||
<properties>
|
||||
<property name="enableNativeTypeHint" value="false"/>
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
<rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint">
|
||||
<exclude-pattern>*/src/*</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint">
|
||||
<exclude-pattern>*/src/*</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<rule ref="SlevomatCodingStandard.Classes.SuperfluousAbstractClassNaming">
|
||||
<exclude-pattern>tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<rule ref="SlevomatCodingStandard.Classes.SuperfluousExceptionNaming">
|
||||
<exclude-pattern>src/Doctrine/Instantiator/Exception/UnexpectedValueException.php</exclude-pattern>
|
||||
<exclude-pattern>src/Doctrine/Instantiator/Exception/InvalidArgumentException.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<rule ref="SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming">
|
||||
<exclude-pattern>src/Doctrine/Instantiator/Exception/ExceptionInterface.php</exclude-pattern>
|
||||
<exclude-pattern>src/Doctrine/Instantiator/InstantiatorInterface.php</exclude-pattern>
|
||||
</rule>
|
||||
</ruleset>
|
||||
@@ -0,0 +1,15 @@
|
||||
includes:
|
||||
- vendor/phpstan/phpstan-phpunit/extension.neon
|
||||
- vendor/phpstan/phpstan-phpunit/rules.neon
|
||||
|
||||
parameters:
|
||||
level: max
|
||||
paths:
|
||||
- src
|
||||
- tests
|
||||
|
||||
ignoreErrors:
|
||||
# dynamic properties confuse static analysis
|
||||
-
|
||||
message: '#Access to an undefined property object::\$foo\.#'
|
||||
path: '*/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php'
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Instantiator\Exception;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Base exception marker interface for the instantiator component
|
||||
*/
|
||||
interface ExceptionInterface extends Throwable
|
||||
{
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Instantiator\Exception;
|
||||
|
||||
use InvalidArgumentException as BaseInvalidArgumentException;
|
||||
use ReflectionClass;
|
||||
|
||||
use function interface_exists;
|
||||
use function sprintf;
|
||||
use function trait_exists;
|
||||
|
||||
/**
|
||||
* Exception for invalid arguments provided to the instantiator
|
||||
*/
|
||||
class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface
|
||||
{
|
||||
public static function fromNonExistingClass(string $className): self
|
||||
{
|
||||
if (interface_exists($className)) {
|
||||
return new self(sprintf('The provided type "%s" is an interface, and can not be instantiated', $className));
|
||||
}
|
||||
|
||||
if (trait_exists($className)) {
|
||||
return new self(sprintf('The provided type "%s" is a trait, and can not be instantiated', $className));
|
||||
}
|
||||
|
||||
return new self(sprintf('The provided class "%s" does not exist', $className));
|
||||
}
|
||||
|
||||
/**
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
public static function fromAbstractClass(ReflectionClass $reflectionClass): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'The provided class "%s" is abstract, and can not be instantiated',
|
||||
$reflectionClass->getName()
|
||||
));
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Instantiator\Exception;
|
||||
|
||||
use Exception;
|
||||
use ReflectionClass;
|
||||
use UnexpectedValueException as BaseUnexpectedValueException;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Exception for given parameters causing invalid/unexpected state on instantiation
|
||||
*/
|
||||
class UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface
|
||||
{
|
||||
/**
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
public static function fromSerializationTriggeredException(
|
||||
ReflectionClass $reflectionClass,
|
||||
Exception $exception
|
||||
): self {
|
||||
return new self(
|
||||
sprintf(
|
||||
'An exception was raised while trying to instantiate an instance of "%s" via un-serialization',
|
||||
$reflectionClass->getName()
|
||||
),
|
||||
0,
|
||||
$exception
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
public static function fromUncleanUnSerialization(
|
||||
ReflectionClass $reflectionClass,
|
||||
string $errorString,
|
||||
int $errorCode,
|
||||
string $errorFile,
|
||||
int $errorLine
|
||||
): self {
|
||||
return new self(
|
||||
sprintf(
|
||||
'Could not produce an instance of "%s" via un-serialization, since an error was triggered '
|
||||
. 'in file "%s" at line "%d"',
|
||||
$reflectionClass->getName(),
|
||||
$errorFile,
|
||||
$errorLine
|
||||
),
|
||||
0,
|
||||
new Exception($errorString, $errorCode)
|
||||
);
|
||||
}
|
||||
}
|
||||
Vendored
+232
@@ -0,0 +1,232 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Instantiator;
|
||||
|
||||
use ArrayIterator;
|
||||
use Doctrine\Instantiator\Exception\InvalidArgumentException;
|
||||
use Doctrine\Instantiator\Exception\UnexpectedValueException;
|
||||
use Exception;
|
||||
use ReflectionClass;
|
||||
use ReflectionException;
|
||||
use Serializable;
|
||||
|
||||
use function class_exists;
|
||||
use function is_subclass_of;
|
||||
use function restore_error_handler;
|
||||
use function set_error_handler;
|
||||
use function sprintf;
|
||||
use function strlen;
|
||||
use function unserialize;
|
||||
|
||||
final class Instantiator implements InstantiatorInterface
|
||||
{
|
||||
/**
|
||||
* Markers used internally by PHP to define whether {@see \unserialize} should invoke
|
||||
* the method {@see \Serializable::unserialize()} when dealing with classes implementing
|
||||
* the {@see \Serializable} interface.
|
||||
*/
|
||||
public const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C';
|
||||
public const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O';
|
||||
|
||||
/**
|
||||
* Used to instantiate specific classes, indexed by class name.
|
||||
*
|
||||
* @var callable[]
|
||||
*/
|
||||
private static $cachedInstantiators = [];
|
||||
|
||||
/**
|
||||
* Array of objects that can directly be cloned, indexed by class name.
|
||||
*
|
||||
* @var object[]
|
||||
*/
|
||||
private static $cachedCloneables = [];
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function instantiate($className)
|
||||
{
|
||||
if (isset(self::$cachedCloneables[$className])) {
|
||||
return clone self::$cachedCloneables[$className];
|
||||
}
|
||||
|
||||
if (isset(self::$cachedInstantiators[$className])) {
|
||||
$factory = self::$cachedInstantiators[$className];
|
||||
|
||||
return $factory();
|
||||
}
|
||||
|
||||
return $this->buildAndCacheFromFactory($className);
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the requested object and caches it in static properties for performance
|
||||
*
|
||||
* @return object
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param class-string<T> $className
|
||||
*
|
||||
* @phpstan-return T
|
||||
*/
|
||||
private function buildAndCacheFromFactory(string $className)
|
||||
{
|
||||
$factory = self::$cachedInstantiators[$className] = $this->buildFactory($className);
|
||||
$instance = $factory();
|
||||
|
||||
if ($this->isSafeToClone(new ReflectionClass($instance))) {
|
||||
self::$cachedCloneables[$className] = clone $instance;
|
||||
}
|
||||
|
||||
return $instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a callable capable of instantiating the given $className without
|
||||
* invoking its constructor.
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
* @throws UnexpectedValueException
|
||||
* @throws ReflectionException
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param class-string<T> $className
|
||||
*
|
||||
* @phpstan-return callable(): T
|
||||
*/
|
||||
private function buildFactory(string $className): callable
|
||||
{
|
||||
$reflectionClass = $this->getReflectionClass($className);
|
||||
|
||||
if ($this->isInstantiableViaReflection($reflectionClass)) {
|
||||
return [$reflectionClass, 'newInstanceWithoutConstructor'];
|
||||
}
|
||||
|
||||
$serializedString = sprintf(
|
||||
'%s:%d:"%s":0:{}',
|
||||
is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER,
|
||||
strlen($className),
|
||||
$className
|
||||
);
|
||||
|
||||
$this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString);
|
||||
|
||||
return static function () use ($serializedString) {
|
||||
return unserialize($serializedString);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException
|
||||
* @throws ReflectionException
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param class-string<T> $className
|
||||
*
|
||||
* @phpstan-return ReflectionClass<T>
|
||||
*/
|
||||
private function getReflectionClass(string $className): ReflectionClass
|
||||
{
|
||||
if (! class_exists($className)) {
|
||||
throw InvalidArgumentException::fromNonExistingClass($className);
|
||||
}
|
||||
|
||||
$reflection = new ReflectionClass($className);
|
||||
|
||||
if ($reflection->isAbstract()) {
|
||||
throw InvalidArgumentException::fromAbstractClass($reflection);
|
||||
}
|
||||
|
||||
return $reflection;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws UnexpectedValueException
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, string $serializedString): void
|
||||
{
|
||||
set_error_handler(static function (int $code, string $message, string $file, int $line) use ($reflectionClass, &$error): bool {
|
||||
$error = UnexpectedValueException::fromUncleanUnSerialization(
|
||||
$reflectionClass,
|
||||
$message,
|
||||
$code,
|
||||
$file,
|
||||
$line
|
||||
);
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
try {
|
||||
$this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);
|
||||
} finally {
|
||||
restore_error_handler();
|
||||
}
|
||||
|
||||
if ($error) {
|
||||
throw $error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws UnexpectedValueException
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, string $serializedString): void
|
||||
{
|
||||
try {
|
||||
unserialize($serializedString);
|
||||
} catch (Exception $exception) {
|
||||
throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
private function isInstantiableViaReflection(ReflectionClass $reflectionClass): bool
|
||||
{
|
||||
return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies whether the given class is to be considered internal
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
private function hasInternalAncestors(ReflectionClass $reflectionClass): bool
|
||||
{
|
||||
do {
|
||||
if ($reflectionClass->isInternal()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$reflectionClass = $reflectionClass->getParentClass();
|
||||
} while ($reflectionClass);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a class is cloneable
|
||||
*
|
||||
* Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects.
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
||||
*/
|
||||
private function isSafeToClone(ReflectionClass $reflectionClass): bool
|
||||
{
|
||||
return $reflectionClass->isCloneable()
|
||||
&& ! $reflectionClass->hasMethod('__clone')
|
||||
&& ! $reflectionClass->isSubclassOf(ArrayIterator::class);
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Instantiator;
|
||||
|
||||
use Doctrine\Instantiator\Exception\ExceptionInterface;
|
||||
|
||||
/**
|
||||
* Instantiator provides utility methods to build objects without invoking their constructors
|
||||
*/
|
||||
interface InstantiatorInterface
|
||||
{
|
||||
/**
|
||||
* @param string $className
|
||||
*
|
||||
* @return object
|
||||
*
|
||||
* @throws ExceptionInterface
|
||||
*
|
||||
* @template T of object
|
||||
* @phpstan-param class-string<T> $className
|
||||
*/
|
||||
public function instantiate($className);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
src_dir: hamcrest
|
||||
@@ -0,0 +1,2 @@
|
||||
vendor
|
||||
composer.lock
|
||||
@@ -0,0 +1,7 @@
|
||||
adapter: github
|
||||
issue_tracker: github
|
||||
meta-header: "Copyright (c) 2009-2015 hamcrest.org"
|
||||
table-pr:
|
||||
fixed_tickets: ['Fixed Tickets', '']
|
||||
license: ['License', MIT]
|
||||
base: master
|
||||
@@ -0,0 +1,18 @@
|
||||
language: php
|
||||
php:
|
||||
- 5.4
|
||||
- 5.3
|
||||
|
||||
install:
|
||||
- composer install
|
||||
|
||||
script:
|
||||
- mkdir -p build/logs
|
||||
- cd tests
|
||||
- phpunit --coverage-clover=../build/logs/clover.xml .
|
||||
- cd ../
|
||||
|
||||
after_script:
|
||||
- php vendor/bin/coveralls -v
|
||||
- wget https://scrutinizer-ci.com/ocular.phar
|
||||
- php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml
|
||||
@@ -0,0 +1,163 @@
|
||||
== Version 1.1.0: Released Feb 2 2012 ==
|
||||
|
||||
Issues Fixed: 121, 138, 147
|
||||
|
||||
* Added non-empty matchers to complement the emptiness-matching forms.
|
||||
|
||||
- nonEmptyString()
|
||||
- nonEmptyArray()
|
||||
- nonEmptyTraversable()
|
||||
|
||||
* Added ability to pass variable arguments to several array-based matcher
|
||||
factory methods so they work like allOf() et al.
|
||||
|
||||
- anArray()
|
||||
- arrayContainingInAnyOrder(), containsInAnyOrder()
|
||||
- arrayContaining(), contains()
|
||||
- stringContainsInOrder()
|
||||
|
||||
* Matchers that accept an array of matchers now also accept variable arguments.
|
||||
Any non-matcher arguments are wrapped by IsEqual.
|
||||
|
||||
* Added noneOf() as a shortcut for not(anyOf()).
|
||||
|
||||
|
||||
== Version 1.0.0: Released Jan 20 2012 ==
|
||||
|
||||
Issues Fixed: 119, 136, 139, 141, 148, 149, 172
|
||||
|
||||
* Moved hamcrest.php into Hamcrest folder and renamed to Hamcrest.php.
|
||||
This is more in line with PEAR packaging standards.
|
||||
|
||||
* Renamed callable() to callableValue() for compatibility with PHP 5.4.
|
||||
|
||||
* Added Hamcrest_Text_StringContainsIgnoringCase to assert using stripos().
|
||||
|
||||
assertThat('fOObAr', containsStringIgnoringCase('oba'));
|
||||
assertThat('fOObAr', containsString('oba')->ignoringCase());
|
||||
|
||||
* Fixed Hamcrest_Core_IsInstanceOf to return false for native types.
|
||||
|
||||
* Moved string-based matchers to Hamcrest_Text package.
|
||||
StringContains, StringEndsWith, StringStartsWith, and SubstringMatcher
|
||||
|
||||
* Hamcrest.php and Hamcrest_Matchers.php are now built from @factory doctags.
|
||||
Added @factory doctag to every static factory method.
|
||||
|
||||
* Hamcrest_Matchers and Hamcrest.php now import each matcher as-needed
|
||||
and Hamcrest.php calls the matchers directly instead of Hamcrest_Matchers.
|
||||
|
||||
|
||||
== Version 0.3.0: Released Jul 26 2010 ==
|
||||
|
||||
* Added running count to Hamcrest_MatcherAssert with methods to get and reset it.
|
||||
This can be used by unit testing frameworks for reporting.
|
||||
|
||||
* Added Hamcrest_Core_HasToString to assert return value of toString() or __toString().
|
||||
|
||||
assertThat($anObject, hasToString('foo'));
|
||||
|
||||
* Added Hamcrest_Type_IsScalar to assert is_scalar().
|
||||
Matches values of type bool, int, float, double, and string.
|
||||
|
||||
assertThat($count, scalarValue());
|
||||
assertThat('foo', scalarValue());
|
||||
|
||||
* Added Hamcrest_Collection package.
|
||||
|
||||
- IsEmptyTraversable
|
||||
- IsTraversableWithSize
|
||||
|
||||
assertThat($iterator, emptyTraversable());
|
||||
assertThat($iterator, traversableWithSize(5));
|
||||
|
||||
* Added Hamcrest_Xml_HasXPath to assert XPath expressions or the content of nodes in an XML/HTML DOM.
|
||||
|
||||
assertThat($dom, hasXPath('books/book/title'));
|
||||
assertThat($dom, hasXPath('books/book[contains(title, "Alice")]', 3));
|
||||
assertThat($dom, hasXPath('books/book/title', 'Alice in Wonderland'));
|
||||
assertThat($dom, hasXPath('count(books/book)', greaterThan(10)));
|
||||
|
||||
* Added aliases to match the Java API.
|
||||
|
||||
hasEntry() -> hasKeyValuePair()
|
||||
hasValue() -> hasItemInArray()
|
||||
contains() -> arrayContaining()
|
||||
containsInAnyOrder() -> arrayContainingInAnyOrder()
|
||||
|
||||
* Added optional subtype to Hamcrest_TypeSafeMatcher to enforce object class or resource type.
|
||||
|
||||
* Hamcrest_TypeSafeDiagnosingMatcher now extends Hamcrest_TypeSafeMatcher.
|
||||
|
||||
|
||||
== Version 0.2.0: Released Jul 14 2010 ==
|
||||
|
||||
Issues Fixed: 109, 111, 114, 115
|
||||
|
||||
* Description::appendValues() and appendValueList() accept Iterator and IteratorAggregate. [111]
|
||||
BaseDescription::appendValue() handles IteratorAggregate.
|
||||
|
||||
* assertThat() accepts a single boolean parameter and
|
||||
wraps any non-Matcher third parameter with equalTo().
|
||||
|
||||
* Removed null return value from assertThat(). [114]
|
||||
|
||||
* Fixed wrong variable name in contains(). [109]
|
||||
|
||||
* Added Hamcrest_Core_IsSet to assert isset().
|
||||
|
||||
assertThat(array('foo' => 'bar'), set('foo'));
|
||||
assertThat(array('foo' => 'bar'), notSet('bar'));
|
||||
|
||||
* Added Hamcrest_Core_IsTypeOf to assert built-in types with gettype(). [115]
|
||||
Types: array, boolean, double, integer, null, object, resource, and string.
|
||||
Note that gettype() returns "double" for float values.
|
||||
|
||||
assertThat($count, typeOf('integer'));
|
||||
assertThat(3.14159, typeOf('double'));
|
||||
assertThat(array('foo', 'bar'), typeOf('array'));
|
||||
assertThat(new stdClass(), typeOf('object'));
|
||||
|
||||
* Added type-specific matchers in new Hamcrest_Type package.
|
||||
|
||||
- IsArray
|
||||
- IsBoolean
|
||||
- IsDouble (includes float values)
|
||||
- IsInteger
|
||||
- IsObject
|
||||
- IsResource
|
||||
- IsString
|
||||
|
||||
assertThat($count, integerValue());
|
||||
assertThat(3.14159, floatValue());
|
||||
assertThat('foo', stringValue());
|
||||
|
||||
* Added Hamcrest_Type_IsNumeric to assert is_numeric().
|
||||
Matches values of type int and float/double or strings that are formatted as numbers.
|
||||
|
||||
assertThat(5, numericValue());
|
||||
assertThat('-5e+3', numericValue());
|
||||
|
||||
* Added Hamcrest_Type_IsCallable to assert is_callable().
|
||||
|
||||
assertThat('preg_match', callable());
|
||||
assertThat(array('SomeClass', 'SomeMethod'), callable());
|
||||
assertThat(array($object, 'SomeMethod'), callable());
|
||||
assertThat($object, callable());
|
||||
assertThat(function ($x, $y) { return $x + $y; }, callable());
|
||||
|
||||
* Added Hamcrest_Text_MatchesPattern for regex matching with preg_match().
|
||||
|
||||
assertThat('foobar', matchesPattern('/o+b/'));
|
||||
|
||||
* Added aliases:
|
||||
- atLeast() for greaterThanOrEqualTo()
|
||||
- atMost() for lessThanOrEqualTo()
|
||||
|
||||
|
||||
== Version 0.1.0: Released Jul 7 2010 ==
|
||||
|
||||
* Created PEAR package
|
||||
|
||||
* Core matchers
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
BSD License
|
||||
|
||||
Copyright (c) 2000-2014, www.hamcrest.org
|
||||
All rights reserved.
|
||||
|
||||
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 Hamcrest nor the names of its 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 COPYRIGHT OWNER 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.
|
||||
@@ -0,0 +1,51 @@
|
||||
This is the PHP port of Hamcrest Matchers
|
||||
=========================================
|
||||
|
||||
[](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/)
|
||||
[](https://travis-ci.org/hamcrest/hamcrest-php)
|
||||
[](https://coveralls.io/r/hamcrest/hamcrest-php)
|
||||
|
||||
Hamcrest is a matching library originally written for Java, but
|
||||
subsequently ported to many other languages. hamcrest-php is the
|
||||
official PHP port of Hamcrest and essentially follows a literal
|
||||
translation of the original Java API for Hamcrest, with a few
|
||||
Exceptions, mostly down to PHP language barriers:
|
||||
|
||||
1. `instanceOf($theClass)` is actually `anInstanceOf($theClass)`
|
||||
|
||||
2. `both(containsString('a'))->and(containsString('b'))`
|
||||
is actually `both(containsString('a'))->andAlso(containsString('b'))`
|
||||
|
||||
3. `either(containsString('a'))->or(containsString('b'))`
|
||||
is actually `either(containsString('a'))->orElse(containsString('b'))`
|
||||
|
||||
4. Unless it would be non-semantic for a matcher to do so, hamcrest-php
|
||||
allows dynamic typing for it's input, in "the PHP way". Exception are
|
||||
where semantics surrounding the type itself would suggest otherwise,
|
||||
such as stringContains() and greaterThan().
|
||||
|
||||
5. Several official matchers have not been ported because they don't
|
||||
make sense or don't apply in PHP:
|
||||
|
||||
- `typeCompatibleWith($theClass)`
|
||||
- `eventFrom($source)`
|
||||
- `hasProperty($name)` **
|
||||
- `samePropertyValuesAs($obj)` **
|
||||
|
||||
6. When most of the collections matchers are finally ported, PHP-specific
|
||||
aliases will probably be created due to a difference in naming
|
||||
conventions between Java's Arrays, Collections, Sets and Maps compared
|
||||
with PHP's Arrays.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Hamcrest matchers are easy to use as:
|
||||
|
||||
```php
|
||||
Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A'));
|
||||
```
|
||||
|
||||
** [Unless we consider POPO's (Plain Old PHP Objects) akin to JavaBeans]
|
||||
- The POPO thing is a joke. Java devs coin the term POJO's (Plain Old
|
||||
Java Objects).
|
||||
@@ -0,0 +1,22 @@
|
||||
Still TODO Before Complete for PHP
|
||||
----------------------------------
|
||||
|
||||
Port:
|
||||
|
||||
- Hamcrest_Collection_*
|
||||
- IsCollectionWithSize
|
||||
- IsEmptyCollection
|
||||
- IsIn
|
||||
- IsTraversableContainingInAnyOrder
|
||||
- IsTraversableContainingInOrder
|
||||
- IsMapContaining (aliases)
|
||||
|
||||
Aliasing/Deprecation (questionable):
|
||||
|
||||
- Find and fix any factory methods that start with "is".
|
||||
|
||||
Namespaces:
|
||||
|
||||
- Investigate adding PHP 5.3+ namespace support in a way that still permits
|
||||
use in PHP 5.2.
|
||||
- Other than a parallel codebase, I don't see how this could be possible.
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "hamcrest/hamcrest-php",
|
||||
"type": "library",
|
||||
"description": "This is the PHP port of Hamcrest Matchers",
|
||||
"keywords": ["test"],
|
||||
"license": "BSD",
|
||||
"authors": [
|
||||
],
|
||||
|
||||
"autoload": {
|
||||
"classmap": ["hamcrest"],
|
||||
"files": ["hamcrest/Hamcrest.php"]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"classmap": ["tests", "generator"]
|
||||
},
|
||||
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
|
||||
"require-dev": {
|
||||
"satooshi/php-coveralls": "dev-master",
|
||||
"phpunit/php-file-iterator": "1.3.3"
|
||||
},
|
||||
|
||||
"replace": {
|
||||
"kodova/hamcrest-php": "*",
|
||||
"davedevelopment/hamcrest-php": "*",
|
||||
"cordoval/hamcrest-php": "*"
|
||||
}
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class FactoryCall
|
||||
{
|
||||
/**
|
||||
* Hamcrest standard is two spaces for each level of indentation.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const INDENT = ' ';
|
||||
|
||||
/**
|
||||
* @var FactoryMethod
|
||||
*/
|
||||
private $method;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
public function __construct(FactoryMethod $method, $name)
|
||||
{
|
||||
$this->method = $method;
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class FactoryClass
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $file;
|
||||
|
||||
/**
|
||||
* @var ReflectionClass
|
||||
*/
|
||||
private $reflector;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $methods;
|
||||
|
||||
public function __construct($file, ReflectionClass $class)
|
||||
{
|
||||
$this->file = $file;
|
||||
$this->reflector = $class;
|
||||
$this->extractFactoryMethods();
|
||||
}
|
||||
|
||||
public function extractFactoryMethods()
|
||||
{
|
||||
$this->methods = array();
|
||||
foreach ($this->getPublicStaticMethods() as $method) {
|
||||
if ($method->isFactory()) {
|
||||
// echo $this->getName() . '::' . $method->getName() . ' : ' . count($method->getCalls()) . PHP_EOL;
|
||||
$this->methods[] = $method;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getPublicStaticMethods()
|
||||
{
|
||||
$methods = array();
|
||||
foreach ($this->reflector->getMethods(ReflectionMethod::IS_STATIC) as $method) {
|
||||
if ($method->isPublic() && $method->getDeclaringClass() == $this->reflector) {
|
||||
$methods[] = new FactoryMethod($this, $method);
|
||||
}
|
||||
}
|
||||
return $methods;
|
||||
}
|
||||
|
||||
public function getFile()
|
||||
{
|
||||
return $this->file;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->reflector->name;
|
||||
}
|
||||
|
||||
public function isFactory()
|
||||
{
|
||||
return !empty($this->methods);
|
||||
}
|
||||
|
||||
public function getMethods()
|
||||
{
|
||||
return $this->methods;
|
||||
}
|
||||
}
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
abstract class FactoryFile
|
||||
{
|
||||
/**
|
||||
* Hamcrest standard is two spaces for each level of indentation.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const INDENT = ' ';
|
||||
|
||||
private $indent;
|
||||
|
||||
private $file;
|
||||
|
||||
private $code;
|
||||
|
||||
public function __construct($file, $indent)
|
||||
{
|
||||
$this->file = $file;
|
||||
$this->indent = $indent;
|
||||
}
|
||||
|
||||
abstract public function addCall(FactoryCall $call);
|
||||
|
||||
abstract public function build();
|
||||
|
||||
public function addFileHeader()
|
||||
{
|
||||
$this->code = '';
|
||||
$this->addPart('file_header');
|
||||
}
|
||||
|
||||
public function addPart($name)
|
||||
{
|
||||
$this->addCode($this->readPart($name));
|
||||
}
|
||||
|
||||
public function addCode($code)
|
||||
{
|
||||
$this->code .= $code;
|
||||
}
|
||||
|
||||
public function readPart($name)
|
||||
{
|
||||
return file_get_contents(__DIR__ . "/parts/$name.txt");
|
||||
}
|
||||
|
||||
public function generateFactoryCall(FactoryCall $call)
|
||||
{
|
||||
$method = $call->getMethod();
|
||||
$code = $method->getComment($this->indent) . PHP_EOL;
|
||||
$code .= $this->generateDeclaration($call->getName(), $method);
|
||||
// $code .= $this->generateImport($method);
|
||||
$code .= $this->generateCall($method);
|
||||
$code .= $this->generateClosing();
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function generateDeclaration($name, FactoryMethod $method)
|
||||
{
|
||||
$code = $this->indent . $this->getDeclarationModifiers()
|
||||
. 'function ' . $name . '('
|
||||
. $this->generateDeclarationArguments($method)
|
||||
. ')' . PHP_EOL . $this->indent . '{' . PHP_EOL;
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function getDeclarationModifiers()
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function generateDeclarationArguments(FactoryMethod $method)
|
||||
{
|
||||
if ($method->acceptsVariableArguments()) {
|
||||
return '/* args... */';
|
||||
} else {
|
||||
return $method->getParameterDeclarations();
|
||||
}
|
||||
}
|
||||
|
||||
public function generateImport(FactoryMethod $method)
|
||||
{
|
||||
return $this->indent . self::INDENT . "require_once '" . $method->getClass()->getFile() . "';" . PHP_EOL;
|
||||
}
|
||||
|
||||
public function generateCall(FactoryMethod $method)
|
||||
{
|
||||
$code = '';
|
||||
if ($method->acceptsVariableArguments()) {
|
||||
$code .= $this->indent . self::INDENT . '$args = func_get_args();' . PHP_EOL;
|
||||
}
|
||||
|
||||
$code .= $this->indent . self::INDENT . 'return ';
|
||||
if ($method->acceptsVariableArguments()) {
|
||||
$code .= 'call_user_func_array(array(\''
|
||||
. '\\' . $method->getClassName() . '\', \''
|
||||
. $method->getName() . '\'), $args);' . PHP_EOL;
|
||||
} else {
|
||||
$code .= '\\' . $method->getClassName() . '::'
|
||||
. $method->getName() . '('
|
||||
. $method->getParameterInvocations() . ');' . PHP_EOL;
|
||||
}
|
||||
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function generateClosing()
|
||||
{
|
||||
return $this->indent . '}' . PHP_EOL;
|
||||
}
|
||||
|
||||
public function write()
|
||||
{
|
||||
file_put_contents($this->file, $this->code);
|
||||
}
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Controls the process of extracting @factory doctags
|
||||
* and generating factory method files.
|
||||
*
|
||||
* Uses File_Iterator to scan for PHP files.
|
||||
*/
|
||||
class FactoryGenerator
|
||||
{
|
||||
/**
|
||||
* Path to the Hamcrest PHP files to process.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $path;
|
||||
|
||||
/**
|
||||
* @var array of FactoryFile
|
||||
*/
|
||||
private $factoryFiles;
|
||||
|
||||
public function __construct($path)
|
||||
{
|
||||
$this->path = $path;
|
||||
$this->factoryFiles = array();
|
||||
}
|
||||
|
||||
public function addFactoryFile(FactoryFile $factoryFile)
|
||||
{
|
||||
$this->factoryFiles[] = $factoryFile;
|
||||
}
|
||||
|
||||
public function generate()
|
||||
{
|
||||
$classes = $this->getClassesWithFactoryMethods();
|
||||
foreach ($classes as $class) {
|
||||
foreach ($class->getMethods() as $method) {
|
||||
foreach ($method->getCalls() as $call) {
|
||||
foreach ($this->factoryFiles as $file) {
|
||||
$file->addCall($call);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function write()
|
||||
{
|
||||
foreach ($this->factoryFiles as $file) {
|
||||
$file->build();
|
||||
$file->write();
|
||||
}
|
||||
}
|
||||
|
||||
public function getClassesWithFactoryMethods()
|
||||
{
|
||||
$classes = array();
|
||||
$files = $this->getSortedFiles();
|
||||
foreach ($files as $file) {
|
||||
$class = $this->getFactoryClass($file);
|
||||
if ($class !== null) {
|
||||
$classes[] = $class;
|
||||
}
|
||||
}
|
||||
|
||||
return $classes;
|
||||
}
|
||||
|
||||
public function getSortedFiles()
|
||||
{
|
||||
$iter = \File_Iterator_Factory::getFileIterator($this->path, '.php');
|
||||
$files = array();
|
||||
foreach ($iter as $file) {
|
||||
$files[] = $file;
|
||||
}
|
||||
sort($files, SORT_STRING);
|
||||
|
||||
return $files;
|
||||
}
|
||||
|
||||
public function getFactoryClass($file)
|
||||
{
|
||||
$name = $this->getFactoryClassName($file);
|
||||
if ($name !== null) {
|
||||
require_once $file;
|
||||
|
||||
if (class_exists($name)) {
|
||||
$class = new FactoryClass(substr($file, strpos($file, 'Hamcrest/')), new ReflectionClass($name));
|
||||
if ($class->isFactory()) {
|
||||
return $class;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getFactoryClassName($file)
|
||||
{
|
||||
$content = file_get_contents($file);
|
||||
if (preg_match('/namespace\s+(.+);/', $content, $namespace)
|
||||
&& preg_match('/\n\s*class\s+(\w+)\s+extends\b/', $content, $className)
|
||||
&& preg_match('/@factory\b/', $content)
|
||||
) {
|
||||
return $namespace[1] . '\\' . $className[1];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+231
@@ -0,0 +1,231 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Represents a single static factory method from a {@link Matcher} class.
|
||||
*
|
||||
* @todo Search method in file contents for func_get_args() to replace factoryVarArgs.
|
||||
*/
|
||||
class FactoryMethod
|
||||
{
|
||||
/**
|
||||
* @var FactoryClass
|
||||
*/
|
||||
private $class;
|
||||
|
||||
/**
|
||||
* @var ReflectionMethod
|
||||
*/
|
||||
private $reflector;
|
||||
|
||||
/**
|
||||
* @var array of string
|
||||
*/
|
||||
private $comment;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $isVarArgs;
|
||||
|
||||
/**
|
||||
* @var array of FactoryCall
|
||||
*/
|
||||
private $calls;
|
||||
|
||||
/**
|
||||
* @var array FactoryParameter
|
||||
*/
|
||||
private $parameters;
|
||||
|
||||
public function __construct(FactoryClass $class, ReflectionMethod $reflector)
|
||||
{
|
||||
$this->class = $class;
|
||||
$this->reflector = $reflector;
|
||||
$this->extractCommentWithoutLeadingShashesAndStars();
|
||||
$this->extractFactoryNamesFromComment();
|
||||
$this->extractParameters();
|
||||
}
|
||||
|
||||
public function extractCommentWithoutLeadingShashesAndStars()
|
||||
{
|
||||
$this->comment = explode("\n", $this->reflector->getDocComment());
|
||||
foreach ($this->comment as &$line) {
|
||||
$line = preg_replace('#^\s*(/\\*+|\\*+/|\\*)\s?#', '', $line);
|
||||
}
|
||||
$this->trimLeadingBlankLinesFromComment();
|
||||
$this->trimTrailingBlankLinesFromComment();
|
||||
}
|
||||
|
||||
public function trimLeadingBlankLinesFromComment()
|
||||
{
|
||||
while (count($this->comment) > 0) {
|
||||
$line = array_shift($this->comment);
|
||||
if (trim($line) != '') {
|
||||
array_unshift($this->comment, $line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function trimTrailingBlankLinesFromComment()
|
||||
{
|
||||
while (count($this->comment) > 0) {
|
||||
$line = array_pop($this->comment);
|
||||
if (trim($line) != '') {
|
||||
array_push($this->comment, $line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function extractFactoryNamesFromComment()
|
||||
{
|
||||
$this->calls = array();
|
||||
for ($i = 0; $i < count($this->comment); $i++) {
|
||||
if ($this->extractFactoryNamesFromLine($this->comment[$i])) {
|
||||
unset($this->comment[$i]);
|
||||
}
|
||||
}
|
||||
$this->trimTrailingBlankLinesFromComment();
|
||||
}
|
||||
|
||||
public function extractFactoryNamesFromLine($line)
|
||||
{
|
||||
if (preg_match('/^\s*@factory(\s+(.+))?$/', $line, $match)) {
|
||||
$this->createCalls(
|
||||
$this->extractFactoryNamesFromAnnotation(
|
||||
isset($match[2]) ? trim($match[2]) : null
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function extractFactoryNamesFromAnnotation($value)
|
||||
{
|
||||
$primaryName = $this->reflector->getName();
|
||||
if (empty($value)) {
|
||||
return array($primaryName);
|
||||
}
|
||||
preg_match_all('/(\.{3}|-|[a-zA-Z_][a-zA-Z_0-9]*)/', $value, $match);
|
||||
$names = $match[0];
|
||||
if (in_array('...', $names)) {
|
||||
$this->isVarArgs = true;
|
||||
}
|
||||
if (!in_array('-', $names) && !in_array($primaryName, $names)) {
|
||||
array_unshift($names, $primaryName);
|
||||
}
|
||||
return $names;
|
||||
}
|
||||
|
||||
public function createCalls(array $names)
|
||||
{
|
||||
$names = array_unique($names);
|
||||
foreach ($names as $name) {
|
||||
if ($name != '-' && $name != '...') {
|
||||
$this->calls[] = new FactoryCall($this, $name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function extractParameters()
|
||||
{
|
||||
$this->parameters = array();
|
||||
if (!$this->isVarArgs) {
|
||||
foreach ($this->reflector->getParameters() as $parameter) {
|
||||
$this->parameters[] = new FactoryParameter($this, $parameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getParameterDeclarations()
|
||||
{
|
||||
if ($this->isVarArgs || !$this->hasParameters()) {
|
||||
return '';
|
||||
}
|
||||
$params = array();
|
||||
foreach ($this->parameters as /** @var $parameter FactoryParameter */
|
||||
$parameter) {
|
||||
$params[] = $parameter->getDeclaration();
|
||||
}
|
||||
return implode(', ', $params);
|
||||
}
|
||||
|
||||
public function getParameterInvocations()
|
||||
{
|
||||
if ($this->isVarArgs) {
|
||||
return '';
|
||||
}
|
||||
$params = array();
|
||||
foreach ($this->parameters as $parameter) {
|
||||
$params[] = $parameter->getInvocation();
|
||||
}
|
||||
return implode(', ', $params);
|
||||
}
|
||||
|
||||
|
||||
public function getClass()
|
||||
{
|
||||
return $this->class;
|
||||
}
|
||||
|
||||
public function getClassName()
|
||||
{
|
||||
return $this->class->getName();
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->reflector->name;
|
||||
}
|
||||
|
||||
public function isFactory()
|
||||
{
|
||||
return count($this->calls) > 0;
|
||||
}
|
||||
|
||||
public function getCalls()
|
||||
{
|
||||
return $this->calls;
|
||||
}
|
||||
|
||||
public function acceptsVariableArguments()
|
||||
{
|
||||
return $this->isVarArgs;
|
||||
}
|
||||
|
||||
public function hasParameters()
|
||||
{
|
||||
return !empty($this->parameters);
|
||||
}
|
||||
|
||||
public function getParameters()
|
||||
{
|
||||
return $this->parameters;
|
||||
}
|
||||
|
||||
public function getFullName()
|
||||
{
|
||||
return $this->getClassName() . '::' . $this->getName();
|
||||
}
|
||||
|
||||
public function getCommentText()
|
||||
{
|
||||
return implode(PHP_EOL, $this->comment);
|
||||
}
|
||||
|
||||
public function getComment($indent = '')
|
||||
{
|
||||
$comment = $indent . '/**';
|
||||
foreach ($this->comment as $line) {
|
||||
$comment .= PHP_EOL . rtrim($indent . ' * ' . $line);
|
||||
}
|
||||
$comment .= PHP_EOL . $indent . ' */';
|
||||
return $comment;
|
||||
}
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class FactoryParameter
|
||||
{
|
||||
/**
|
||||
* @var FactoryMethod
|
||||
*/
|
||||
private $method;
|
||||
|
||||
/**
|
||||
* @var ReflectionParameter
|
||||
*/
|
||||
private $reflector;
|
||||
|
||||
public function __construct(FactoryMethod $method, ReflectionParameter $reflector)
|
||||
{
|
||||
$this->method = $method;
|
||||
$this->reflector = $reflector;
|
||||
}
|
||||
|
||||
public function getDeclaration()
|
||||
{
|
||||
if ($this->reflector->isArray()) {
|
||||
$code = 'array ';
|
||||
} else {
|
||||
$class = $this->reflector->getClass();
|
||||
if ($class !== null) {
|
||||
$code = '\\' . $class->name . ' ';
|
||||
} else {
|
||||
$code = '';
|
||||
}
|
||||
}
|
||||
$code .= '$' . $this->reflector->name;
|
||||
if ($this->reflector->isOptional()) {
|
||||
$default = $this->reflector->getDefaultValue();
|
||||
if (is_null($default)) {
|
||||
$default = 'null';
|
||||
} elseif (is_bool($default)) {
|
||||
$default = $default ? 'true' : 'false';
|
||||
} elseif (is_string($default)) {
|
||||
$default = "'" . $default . "'";
|
||||
} elseif (is_numeric($default)) {
|
||||
$default = strval($default);
|
||||
} elseif (is_array($default)) {
|
||||
$default = 'array()';
|
||||
} else {
|
||||
echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL;
|
||||
var_dump($default);
|
||||
$default = 'null';
|
||||
}
|
||||
$code .= ' = ' . $default;
|
||||
}
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function getInvocation()
|
||||
{
|
||||
return '$' . $this->reflector->name;
|
||||
}
|
||||
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class GlobalFunctionFile extends FactoryFile
|
||||
{
|
||||
/**
|
||||
* @var string containing function definitions
|
||||
*/
|
||||
private $functions;
|
||||
|
||||
public function __construct($file)
|
||||
{
|
||||
parent::__construct($file, ' ');
|
||||
$this->functions = '';
|
||||
}
|
||||
|
||||
public function addCall(FactoryCall $call)
|
||||
{
|
||||
$this->functions .= PHP_EOL . $this->generateFactoryCall($call);
|
||||
}
|
||||
|
||||
public function build()
|
||||
{
|
||||
$this->addFileHeader();
|
||||
$this->addPart('functions_imports');
|
||||
$this->addPart('functions_header');
|
||||
$this->addCode($this->functions);
|
||||
$this->addPart('functions_footer');
|
||||
}
|
||||
|
||||
public function generateFactoryCall(FactoryCall $call)
|
||||
{
|
||||
$code = "if (!function_exists('{$call->getName()}')) {";
|
||||
$code.= parent::generateFactoryCall($call);
|
||||
$code.= "}\n";
|
||||
|
||||
return $code;
|
||||
}
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class StaticMethodFile extends FactoryFile
|
||||
{
|
||||
/**
|
||||
* @var string containing method definitions
|
||||
*/
|
||||
private $methods;
|
||||
|
||||
public function __construct($file)
|
||||
{
|
||||
parent::__construct($file, ' ');
|
||||
$this->methods = '';
|
||||
}
|
||||
|
||||
public function addCall(FactoryCall $call)
|
||||
{
|
||||
$this->methods .= PHP_EOL . $this->generateFactoryCall($call);
|
||||
}
|
||||
|
||||
public function getDeclarationModifiers()
|
||||
{
|
||||
return 'public static ';
|
||||
}
|
||||
|
||||
public function build()
|
||||
{
|
||||
$this->addFileHeader();
|
||||
$this->addPart('matchers_imports');
|
||||
$this->addPart('matchers_header');
|
||||
$this->addCode($this->methods);
|
||||
$this->addPart('matchers_footer');
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009-2010 hamcrest.org
|
||||
*/
|
||||
|
||||
// This file is generated from the static method @factory doctags.
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
|
||||
if (!function_exists('assertThat')) {
|
||||
/**
|
||||
* Make an assertion and throw {@link Hamcrest_AssertionError} if it fails.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* //With an identifier
|
||||
* assertThat("assertion identifier", $apple->flavour(), equalTo("tasty"));
|
||||
* //Without an identifier
|
||||
* assertThat($apple->flavour(), equalTo("tasty"));
|
||||
* //Evaluating a boolean expression
|
||||
* assertThat("some error", $a > $b);
|
||||
* </pre>
|
||||
*/
|
||||
function assertThat()
|
||||
{
|
||||
$args = func_get_args();
|
||||
call_user_func_array(
|
||||
array('Hamcrest\MatcherAssert', 'assertThat'),
|
||||
$args
|
||||
);
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
/**
|
||||
* A series of static factories for all hamcrest matchers.
|
||||
*/
|
||||
class Matchers
|
||||
{
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
|
||||
namespace Hamcrest;
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
/*
|
||||
* Generates the Hamcrest\Matchers factory class and factory functions
|
||||
* from the @factory doctags in the various matchers.
|
||||
*/
|
||||
|
||||
define('GENERATOR_BASE', __DIR__);
|
||||
define('HAMCREST_BASE', realpath(dirname(GENERATOR_BASE) . DIRECTORY_SEPARATOR . 'hamcrest'));
|
||||
|
||||
define('GLOBAL_FUNCTIONS_FILE', HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest.php');
|
||||
define('STATIC_MATCHERS_FILE', HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest' . DIRECTORY_SEPARATOR . 'Matchers.php');
|
||||
|
||||
set_include_path(
|
||||
implode(
|
||||
PATH_SEPARATOR,
|
||||
array(
|
||||
GENERATOR_BASE,
|
||||
HAMCREST_BASE,
|
||||
get_include_path()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@unlink(GLOBAL_FUNCTIONS_FILE);
|
||||
@unlink(STATIC_MATCHERS_FILE);
|
||||
|
||||
$generator = new FactoryGenerator(HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest');
|
||||
$generator->addFactoryFile(new StaticMethodFile(STATIC_MATCHERS_FILE));
|
||||
$generator->addFactoryFile(new GlobalFunctionFile(GLOBAL_FUNCTIONS_FILE));
|
||||
$generator->generate();
|
||||
$generator->write();
|
||||
@@ -0,0 +1,805 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009-2010 hamcrest.org
|
||||
*/
|
||||
|
||||
// This file is generated from the static method @factory doctags.
|
||||
|
||||
if (!function_exists('assertThat')) {
|
||||
/**
|
||||
* Make an assertion and throw {@link Hamcrest_AssertionError} if it fails.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* //With an identifier
|
||||
* assertThat("assertion identifier", $apple->flavour(), equalTo("tasty"));
|
||||
* //Without an identifier
|
||||
* assertThat($apple->flavour(), equalTo("tasty"));
|
||||
* //Evaluating a boolean expression
|
||||
* assertThat("some error", $a > $b);
|
||||
* </pre>
|
||||
*/
|
||||
function assertThat()
|
||||
{
|
||||
$args = func_get_args();
|
||||
call_user_func_array(
|
||||
array('Hamcrest\MatcherAssert', 'assertThat'),
|
||||
$args
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anArray')) { /**
|
||||
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
||||
*/
|
||||
function anArray(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArray', 'anArray'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasItemInArray')) { /**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
*/
|
||||
function hasItemInArray($item)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasValue')) { /**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
*/
|
||||
function hasValue($item)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayContainingInAnyOrder')) { /**
|
||||
* An array with elements that match the given matchers.
|
||||
*/
|
||||
function arrayContainingInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('containsInAnyOrder')) { /**
|
||||
* An array with elements that match the given matchers.
|
||||
*/
|
||||
function containsInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayContaining')) { /**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*/
|
||||
function arrayContaining(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('contains')) { /**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*/
|
||||
function contains(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasKeyInArray')) { /**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
*/
|
||||
function hasKeyInArray($key)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasKey')) { /**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
*/
|
||||
function hasKey($key)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasKeyValuePair')) { /**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*/
|
||||
function hasKeyValuePair($key, $value)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasEntry')) { /**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*/
|
||||
function hasEntry($key, $value)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayWithSize')) { /**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayWithSize
|
||||
*/
|
||||
function arrayWithSize($size)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::arrayWithSize($size);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('emptyArray')) { /**
|
||||
* Matches an empty array.
|
||||
*/
|
||||
function emptyArray()
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::emptyArray();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nonEmptyArray')) { /**
|
||||
* Matches an empty array.
|
||||
*/
|
||||
function nonEmptyArray()
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::nonEmptyArray();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('emptyTraversable')) { /**
|
||||
* Returns true if traversable is empty.
|
||||
*/
|
||||
function emptyTraversable()
|
||||
{
|
||||
return \Hamcrest\Collection\IsEmptyTraversable::emptyTraversable();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nonEmptyTraversable')) { /**
|
||||
* Returns true if traversable is not empty.
|
||||
*/
|
||||
function nonEmptyTraversable()
|
||||
{
|
||||
return \Hamcrest\Collection\IsEmptyTraversable::nonEmptyTraversable();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('traversableWithSize')) { /**
|
||||
* Does traversable size satisfy a given matcher?
|
||||
*/
|
||||
function traversableWithSize($size)
|
||||
{
|
||||
return \Hamcrest\Collection\IsTraversableWithSize::traversableWithSize($size);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('allOf')) { /**
|
||||
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
||||
*/
|
||||
function allOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AllOf', 'allOf'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anyOf')) { /**
|
||||
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
||||
*/
|
||||
function anyOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'anyOf'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('noneOf')) { /**
|
||||
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
||||
*/
|
||||
function noneOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'noneOf'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('both')) { /**
|
||||
* This is useful for fluently combining matchers that must both pass.
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
||||
* </pre>
|
||||
*/
|
||||
function both(\Hamcrest\Matcher $matcher)
|
||||
{
|
||||
return \Hamcrest\Core\CombinableMatcher::both($matcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('either')) { /**
|
||||
* This is useful for fluently combining matchers where either may pass,
|
||||
* for example:
|
||||
* <pre>
|
||||
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
||||
* </pre>
|
||||
*/
|
||||
function either(\Hamcrest\Matcher $matcher)
|
||||
{
|
||||
return \Hamcrest\Core\CombinableMatcher::either($matcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('describedAs')) { /**
|
||||
* Wraps an existing matcher and overrides the description when it fails.
|
||||
*/
|
||||
function describedAs(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('everyItem')) { /**
|
||||
* @param Matcher $itemMatcher
|
||||
* A matcher to apply to every element in an array.
|
||||
*
|
||||
* @return \Hamcrest\Core\Every
|
||||
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
||||
*/
|
||||
function everyItem(\Hamcrest\Matcher $itemMatcher)
|
||||
{
|
||||
return \Hamcrest\Core\Every::everyItem($itemMatcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasToString')) { /**
|
||||
* Does array size satisfy a given matcher?
|
||||
*/
|
||||
function hasToString($matcher)
|
||||
{
|
||||
return \Hamcrest\Core\HasToString::hasToString($matcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('is')) { /**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*/
|
||||
function is($value)
|
||||
{
|
||||
return \Hamcrest\Core\Is::is($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anything')) { /**
|
||||
* This matcher always evaluates to true.
|
||||
*
|
||||
* @param string $description A meaningful string used when describing itself.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsAnything
|
||||
*/
|
||||
function anything($description = 'ANYTHING')
|
||||
{
|
||||
return \Hamcrest\Core\IsAnything::anything($description);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasItem')) { /**
|
||||
* Test if the value is an array containing this matcher.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
||||
* //Convenience defaults to equalTo()
|
||||
* assertThat(array('a', 'b'), hasItem('b'));
|
||||
* </pre>
|
||||
*/
|
||||
function hasItem(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasItems')) { /**
|
||||
* Test if the value is an array containing elements that match all of these
|
||||
* matchers.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
||||
* </pre>
|
||||
*/
|
||||
function hasItems(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('equalTo')) { /**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*/
|
||||
function equalTo($item)
|
||||
{
|
||||
return \Hamcrest\Core\IsEqual::equalTo($item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('identicalTo')) { /**
|
||||
* Tests of the value is identical to $value as tested by the "===" operator.
|
||||
*/
|
||||
function identicalTo($value)
|
||||
{
|
||||
return \Hamcrest\Core\IsIdentical::identicalTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anInstanceOf')) { /**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*/
|
||||
function anInstanceOf($theClass)
|
||||
{
|
||||
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('any')) { /**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*/
|
||||
function any($theClass)
|
||||
{
|
||||
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('not')) { /**
|
||||
* Matches if value does not match $value.
|
||||
*/
|
||||
function not($value)
|
||||
{
|
||||
return \Hamcrest\Core\IsNot::not($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nullValue')) { /**
|
||||
* Matches if value is null.
|
||||
*/
|
||||
function nullValue()
|
||||
{
|
||||
return \Hamcrest\Core\IsNull::nullValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('notNullValue')) { /**
|
||||
* Matches if value is not null.
|
||||
*/
|
||||
function notNullValue()
|
||||
{
|
||||
return \Hamcrest\Core\IsNull::notNullValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('sameInstance')) { /**
|
||||
* Creates a new instance of IsSame.
|
||||
*
|
||||
* @param mixed $object
|
||||
* The predicate evaluates to true only when the argument is
|
||||
* this object.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsSame
|
||||
*/
|
||||
function sameInstance($object)
|
||||
{
|
||||
return \Hamcrest\Core\IsSame::sameInstance($object);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('typeOf')) { /**
|
||||
* Is the value a particular built-in type?
|
||||
*/
|
||||
function typeOf($theType)
|
||||
{
|
||||
return \Hamcrest\Core\IsTypeOf::typeOf($theType);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('set')) { /**
|
||||
* Matches if value (class, object, or array) has named $property.
|
||||
*/
|
||||
function set($property)
|
||||
{
|
||||
return \Hamcrest\Core\Set::set($property);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('notSet')) { /**
|
||||
* Matches if value (class, object, or array) does not have named $property.
|
||||
*/
|
||||
function notSet($property)
|
||||
{
|
||||
return \Hamcrest\Core\Set::notSet($property);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('closeTo')) { /**
|
||||
* Matches if value is a number equal to $value within some range of
|
||||
* acceptable error $delta.
|
||||
*/
|
||||
function closeTo($value, $delta)
|
||||
{
|
||||
return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('comparesEqualTo')) { /**
|
||||
* The value is not > $value, nor < $value.
|
||||
*/
|
||||
function comparesEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('greaterThan')) { /**
|
||||
* The value is > $value.
|
||||
*/
|
||||
function greaterThan($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThan($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('greaterThanOrEqualTo')) { /**
|
||||
* The value is >= $value.
|
||||
*/
|
||||
function greaterThanOrEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('atLeast')) { /**
|
||||
* The value is >= $value.
|
||||
*/
|
||||
function atLeast($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('lessThan')) { /**
|
||||
* The value is < $value.
|
||||
*/
|
||||
function lessThan($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThan($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('lessThanOrEqualTo')) { /**
|
||||
* The value is <= $value.
|
||||
*/
|
||||
function lessThanOrEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('atMost')) { /**
|
||||
* The value is <= $value.
|
||||
*/
|
||||
function atMost($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isEmptyString')) { /**
|
||||
* Matches if value is a zero-length string.
|
||||
*/
|
||||
function isEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('emptyString')) { /**
|
||||
* Matches if value is a zero-length string.
|
||||
*/
|
||||
function emptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isEmptyOrNullString')) { /**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*/
|
||||
function isEmptyOrNullString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nullOrEmptyString')) { /**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*/
|
||||
function nullOrEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isNonEmptyString')) { /**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*/
|
||||
function isNonEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nonEmptyString')) { /**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*/
|
||||
function nonEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('equalToIgnoringCase')) { /**
|
||||
* Matches if value is a string equal to $string, regardless of the case.
|
||||
*/
|
||||
function equalToIgnoringCase($string)
|
||||
{
|
||||
return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('equalToIgnoringWhiteSpace')) { /**
|
||||
* Matches if value is a string equal to $string, regardless of whitespace.
|
||||
*/
|
||||
function equalToIgnoringWhiteSpace($string)
|
||||
{
|
||||
return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('matchesPattern')) { /**
|
||||
* Matches if value is a string that matches regular expression $pattern.
|
||||
*/
|
||||
function matchesPattern($pattern)
|
||||
{
|
||||
return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('containsString')) { /**
|
||||
* Matches if value is a string that contains $substring.
|
||||
*/
|
||||
function containsString($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringContains::containsString($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('containsStringIgnoringCase')) { /**
|
||||
* Matches if value is a string that contains $substring regardless of the case.
|
||||
*/
|
||||
function containsStringIgnoringCase($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('stringContainsInOrder')) { /**
|
||||
* Matches if value contains $substrings in a constrained order.
|
||||
*/
|
||||
function stringContainsInOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('endsWith')) { /**
|
||||
* Matches if value is a string that ends with $substring.
|
||||
*/
|
||||
function endsWith($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringEndsWith::endsWith($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('startsWith')) { /**
|
||||
* Matches if value is a string that starts with $substring.
|
||||
*/
|
||||
function startsWith($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringStartsWith::startsWith($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayValue')) { /**
|
||||
* Is the value an array?
|
||||
*/
|
||||
function arrayValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsArray::arrayValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('booleanValue')) { /**
|
||||
* Is the value a boolean?
|
||||
*/
|
||||
function booleanValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsBoolean::booleanValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('boolValue')) { /**
|
||||
* Is the value a boolean?
|
||||
*/
|
||||
function boolValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsBoolean::booleanValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('callableValue')) { /**
|
||||
* Is the value callable?
|
||||
*/
|
||||
function callableValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsCallable::callableValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('doubleValue')) { /**
|
||||
* Is the value a float/double?
|
||||
*/
|
||||
function doubleValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsDouble::doubleValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('floatValue')) { /**
|
||||
* Is the value a float/double?
|
||||
*/
|
||||
function floatValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsDouble::doubleValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('integerValue')) { /**
|
||||
* Is the value an integer?
|
||||
*/
|
||||
function integerValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsInteger::integerValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('intValue')) { /**
|
||||
* Is the value an integer?
|
||||
*/
|
||||
function intValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsInteger::integerValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('numericValue')) { /**
|
||||
* Is the value a numeric?
|
||||
*/
|
||||
function numericValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsNumeric::numericValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('objectValue')) { /**
|
||||
* Is the value an object?
|
||||
*/
|
||||
function objectValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsObject::objectValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anObject')) { /**
|
||||
* Is the value an object?
|
||||
*/
|
||||
function anObject()
|
||||
{
|
||||
return \Hamcrest\Type\IsObject::objectValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('resourceValue')) { /**
|
||||
* Is the value a resource?
|
||||
*/
|
||||
function resourceValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsResource::resourceValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('scalarValue')) { /**
|
||||
* Is the value a scalar (boolean, integer, double, or string)?
|
||||
*/
|
||||
function scalarValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsScalar::scalarValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('stringValue')) { /**
|
||||
* Is the value a string?
|
||||
*/
|
||||
function stringValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsString::stringValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasXPath')) { /**
|
||||
* Wraps <code>$matcher</code> with {@link Hamcrest\Core\IsEqual)
|
||||
* if it's not a matcher and the XPath in <code>count()</code>
|
||||
* if it's an integer.
|
||||
*/
|
||||
function hasXPath($xpath, $matcher = null)
|
||||
{
|
||||
return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher);
|
||||
}
|
||||
}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
// NOTE: This class is not exactly a direct port of Java's since Java handles
|
||||
// arrays quite differently than PHP
|
||||
|
||||
// TODO: Allow this to take matchers or values within the array
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matcher for array whose elements satisfy a sequence of matchers.
|
||||
* The array size must equal the number of element matchers.
|
||||
*/
|
||||
class IsArray extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
|
||||
public function __construct(array $elementMatchers)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
Util::checkAllAreMatchers($elementMatchers);
|
||||
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
if (array_keys($array) != array_keys($this->_elementMatchers)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_elementMatchers as $k => $matcher) {
|
||||
if (!$matcher->matches($array[$k])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($actual, Description $mismatchDescription)
|
||||
{
|
||||
if (count($actual) != count($this->_elementMatchers)) {
|
||||
$mismatchDescription->appendText('array length was ' . count($actual));
|
||||
|
||||
return;
|
||||
} elseif (array_keys($actual) != array_keys($this->_elementMatchers)) {
|
||||
$mismatchDescription->appendText('array keys were ')
|
||||
->appendValueList(
|
||||
$this->descriptionStart(),
|
||||
$this->descriptionSeparator(),
|
||||
$this->descriptionEnd(),
|
||||
array_keys($actual)
|
||||
)
|
||||
;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_elementMatchers as $k => $matcher) {
|
||||
if (!$matcher->matches($actual[$k])) {
|
||||
$mismatchDescription->appendText('element ')->appendValue($k)
|
||||
->appendText(' was ')->appendValue($actual[$k]);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList(
|
||||
$this->descriptionStart(),
|
||||
$this->descriptionSeparator(),
|
||||
$this->descriptionEnd(),
|
||||
$this->_elementMatchers
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function anArray(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function descriptionStart()
|
||||
{
|
||||
return '[';
|
||||
}
|
||||
|
||||
protected function descriptionSeparator()
|
||||
{
|
||||
return ', ';
|
||||
}
|
||||
|
||||
protected function descriptionEnd()
|
||||
{
|
||||
return ']';
|
||||
}
|
||||
}
|
||||
Vendored
+63
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains an item satisfying a nested matcher.
|
||||
*/
|
||||
class IsArrayContaining extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_elementMatcher;
|
||||
|
||||
public function __construct(Matcher $elementMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_elementMatcher = $elementMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
foreach ($array as $element) {
|
||||
if ($this->_elementMatcher->matches($element)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendValue($array);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description
|
||||
->appendText('an array containing ')
|
||||
->appendDescriptionOf($this->_elementMatcher)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
* @factory hasValue
|
||||
*/
|
||||
public static function hasItemInArray($item)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($item));
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeDiagnosingMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains a set of items satisfying nested matchers.
|
||||
*/
|
||||
class IsArrayContainingInAnyOrder extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
|
||||
public function __construct(array $elementMatchers)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
Util::checkAllAreMatchers($elementMatchers);
|
||||
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
}
|
||||
|
||||
protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription)
|
||||
{
|
||||
$matching = new MatchingOnce($this->_elementMatchers, $mismatchDescription);
|
||||
|
||||
foreach ($array as $element) {
|
||||
if (!$matching->matches($element)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return $matching->isFinished($array);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList('[', ', ', ']', $this->_elementMatchers)
|
||||
->appendText(' in any order')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers.
|
||||
*
|
||||
* @factory containsInAnyOrder ...
|
||||
*/
|
||||
public static function arrayContainingInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeDiagnosingMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains a set of items satisfying nested matchers.
|
||||
*/
|
||||
class IsArrayContainingInOrder extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
|
||||
public function __construct(array $elementMatchers)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
Util::checkAllAreMatchers($elementMatchers);
|
||||
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
}
|
||||
|
||||
protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription)
|
||||
{
|
||||
$series = new SeriesMatchingOnce($this->_elementMatchers, $mismatchDescription);
|
||||
|
||||
foreach ($array as $element) {
|
||||
if (!$series->matches($element)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return $series->isFinished();
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList('[', ', ', ']', $this->_elementMatchers);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*
|
||||
* @factory contains ...
|
||||
*/
|
||||
public static function arrayContaining(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains the specified key.
|
||||
*/
|
||||
class IsArrayContainingKey extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_keyMatcher;
|
||||
|
||||
public function __construct(Matcher $keyMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_keyMatcher = $keyMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
foreach ($array as $key => $element) {
|
||||
if ($this->_keyMatcher->matches($key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
||||
{
|
||||
//Not using appendValueList() so that keys can be shown
|
||||
$mismatchDescription->appendText('array was ')
|
||||
->appendText('[')
|
||||
;
|
||||
$loop = false;
|
||||
foreach ($array as $key => $value) {
|
||||
if ($loop) {
|
||||
$mismatchDescription->appendText(', ');
|
||||
}
|
||||
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
|
||||
$loop = true;
|
||||
}
|
||||
$mismatchDescription->appendText(']');
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description
|
||||
->appendText('array with key ')
|
||||
->appendDescriptionOf($this->_keyMatcher)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
* @factory hasKey
|
||||
*/
|
||||
public static function hasKeyInArray($key)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($key));
|
||||
}
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/**
|
||||
* Tests for the presence of both a key and value inside an array.
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
|
||||
class IsArrayContainingKeyValuePair extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_keyMatcher;
|
||||
private $_valueMatcher;
|
||||
|
||||
public function __construct(Matcher $keyMatcher, Matcher $valueMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_keyMatcher = $keyMatcher;
|
||||
$this->_valueMatcher = $valueMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if ($this->_keyMatcher->matches($key) && $this->_valueMatcher->matches($value)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
||||
{
|
||||
//Not using appendValueList() so that keys can be shown
|
||||
$mismatchDescription->appendText('array was ')
|
||||
->appendText('[')
|
||||
;
|
||||
$loop = false;
|
||||
foreach ($array as $key => $value) {
|
||||
if ($loop) {
|
||||
$mismatchDescription->appendText(', ');
|
||||
}
|
||||
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
|
||||
$loop = true;
|
||||
}
|
||||
$mismatchDescription->appendText(']');
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('array containing [')
|
||||
->appendDescriptionOf($this->_keyMatcher)
|
||||
->appendText(' => ')
|
||||
->appendDescriptionOf($this->_valueMatcher)
|
||||
->appendText(']')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*
|
||||
* @factory hasEntry
|
||||
*/
|
||||
public static function hasKeyValuePair($key, $value)
|
||||
{
|
||||
return new self(
|
||||
Util::wrapValueWithIsEqual($key),
|
||||
Util::wrapValueWithIsEqual($value)
|
||||
);
|
||||
}
|
||||
}
|
||||
Vendored
+73
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\DescribedAs;
|
||||
use Hamcrest\Core\IsNot;
|
||||
use Hamcrest\FeatureMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if array size satisfies a nested matcher.
|
||||
*/
|
||||
class IsArrayWithSize extends FeatureMatcher
|
||||
{
|
||||
|
||||
public function __construct(Matcher $sizeMatcher)
|
||||
{
|
||||
parent::__construct(
|
||||
self::TYPE_ARRAY,
|
||||
null,
|
||||
$sizeMatcher,
|
||||
'an array with size',
|
||||
'array size'
|
||||
);
|
||||
}
|
||||
|
||||
protected function featureValueOf($array)
|
||||
{
|
||||
return count($array);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayWithSize
|
||||
* @factory
|
||||
*/
|
||||
public static function arrayWithSize($size)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($size));
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches an empty array.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function emptyArray()
|
||||
{
|
||||
return DescribedAs::describedAs(
|
||||
'an empty array',
|
||||
self::arrayWithSize(0)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches an empty array.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function nonEmptyArray()
|
||||
{
|
||||
return DescribedAs::describedAs(
|
||||
'a non-empty array',
|
||||
self::arrayWithSize(IsNot::not(0))
|
||||
);
|
||||
}
|
||||
}
|
||||
Vendored
+69
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
|
||||
class MatchingOnce
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
private $_mismatchDescription;
|
||||
|
||||
public function __construct(array $elementMatchers, Description $mismatchDescription)
|
||||
{
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
$this->_mismatchDescription = $mismatchDescription;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_isNotSurplus($item) && $this->_isMatched($item);
|
||||
}
|
||||
|
||||
public function isFinished($items)
|
||||
{
|
||||
if (empty($this->_elementMatchers)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->_mismatchDescription
|
||||
->appendText('No item matches: ')->appendList('', ', ', '', $this->_elementMatchers)
|
||||
->appendText(' in ')->appendValueList('[', ', ', ']', $items)
|
||||
;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _isNotSurplus($item)
|
||||
{
|
||||
if (empty($this->_elementMatchers)) {
|
||||
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function _isMatched($item)
|
||||
{
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_elementMatchers as $i => $matcher) {
|
||||
if ($matcher->matches($item)) {
|
||||
unset($this->_elementMatchers[$i]);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Vendored
+75
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
class SeriesMatchingOnce
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
private $_keys;
|
||||
private $_mismatchDescription;
|
||||
private $_nextMatchKey;
|
||||
|
||||
public function __construct(array $elementMatchers, Description $mismatchDescription)
|
||||
{
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
$this->_keys = array_keys($elementMatchers);
|
||||
$this->_mismatchDescription = $mismatchDescription;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_isNotSurplus($item) && $this->_isMatched($item);
|
||||
}
|
||||
|
||||
public function isFinished()
|
||||
{
|
||||
if (!empty($this->_elementMatchers)) {
|
||||
$nextMatcher = current($this->_elementMatchers);
|
||||
$this->_mismatchDescription->appendText('No item matched: ')->appendDescriptionOf($nextMatcher);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _isNotSurplus($item)
|
||||
{
|
||||
if (empty($this->_elementMatchers)) {
|
||||
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function _isMatched($item)
|
||||
{
|
||||
$this->_nextMatchKey = array_shift($this->_keys);
|
||||
$nextMatcher = array_shift($this->_elementMatchers);
|
||||
|
||||
if (!$nextMatcher->matches($item)) {
|
||||
$this->_describeMismatch($nextMatcher, $item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function _describeMismatch(Matcher $matcher, $item)
|
||||
{
|
||||
$this->_mismatchDescription->appendText('item with key ' . $this->_nextMatchKey . ': ');
|
||||
$matcher->describeMismatch($item, $this->_mismatchDescription);
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class AssertionError extends \RuntimeException
|
||||
{
|
||||
}
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Internal\SelfDescribingValue;
|
||||
|
||||
/**
|
||||
* A {@link Hamcrest\Description} that is stored as a string.
|
||||
*/
|
||||
abstract class BaseDescription implements Description
|
||||
{
|
||||
|
||||
public function appendText($text)
|
||||
{
|
||||
$this->append($text);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendDescriptionOf(SelfDescribing $value)
|
||||
{
|
||||
$value->describeTo($this);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendValue($value)
|
||||
{
|
||||
if (is_null($value)) {
|
||||
$this->append('null');
|
||||
} elseif (is_string($value)) {
|
||||
$this->_toPhpSyntax($value);
|
||||
} elseif (is_float($value)) {
|
||||
$this->append('<');
|
||||
$this->append($value);
|
||||
$this->append('F>');
|
||||
} elseif (is_bool($value)) {
|
||||
$this->append('<');
|
||||
$this->append($value ? 'true' : 'false');
|
||||
$this->append('>');
|
||||
} elseif (is_array($value) || $value instanceof \Iterator || $value instanceof \IteratorAggregate) {
|
||||
$this->appendValueList('[', ', ', ']', $value);
|
||||
} elseif (is_object($value) && !method_exists($value, '__toString')) {
|
||||
$this->append('<');
|
||||
$this->append(get_class($value));
|
||||
$this->append('>');
|
||||
} else {
|
||||
$this->append('<');
|
||||
$this->append($value);
|
||||
$this->append('>');
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendValueList($start, $separator, $end, $values)
|
||||
{
|
||||
$list = array();
|
||||
foreach ($values as $v) {
|
||||
$list[] = new SelfDescribingValue($v);
|
||||
}
|
||||
|
||||
$this->appendList($start, $separator, $end, $list);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendList($start, $separator, $end, $values)
|
||||
{
|
||||
$this->append($start);
|
||||
|
||||
$separate = false;
|
||||
|
||||
foreach ($values as $value) {
|
||||
/*if (!($value instanceof Hamcrest\SelfDescribing)) {
|
||||
$value = new Hamcrest\Internal\SelfDescribingValue($value);
|
||||
}*/
|
||||
|
||||
if ($separate) {
|
||||
$this->append($separator);
|
||||
}
|
||||
|
||||
$this->appendDescriptionOf($value);
|
||||
|
||||
$separate = true;
|
||||
}
|
||||
|
||||
$this->append($end);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
/**
|
||||
* Append the String <var>$str</var> to the description.
|
||||
*/
|
||||
abstract protected function append($str);
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _toPhpSyntax($value)
|
||||
{
|
||||
$str = '"';
|
||||
for ($i = 0, $len = strlen($value); $i < $len; ++$i) {
|
||||
switch ($value[$i]) {
|
||||
case '"':
|
||||
$str .= '\\"';
|
||||
break;
|
||||
|
||||
case "\t":
|
||||
$str .= '\\t';
|
||||
break;
|
||||
|
||||
case "\r":
|
||||
$str .= '\\r';
|
||||
break;
|
||||
|
||||
case "\n":
|
||||
$str .= '\\n';
|
||||
break;
|
||||
|
||||
default:
|
||||
$str .= $value[$i];
|
||||
}
|
||||
}
|
||||
$str .= '"';
|
||||
$this->append($str);
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* BaseClass for all Matcher implementations.
|
||||
*
|
||||
* @see Hamcrest\Matcher
|
||||
*/
|
||||
abstract class BaseMatcher implements Matcher
|
||||
{
|
||||
|
||||
public function describeMismatch($item, Description $description)
|
||||
{
|
||||
$description->appendText('was ')->appendValue($item);
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return StringDescription::toString($this);
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
namespace Hamcrest\Collection;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Matches if traversable is empty or non-empty.
|
||||
*/
|
||||
class IsEmptyTraversable extends BaseMatcher
|
||||
{
|
||||
|
||||
private static $_INSTANCE;
|
||||
private static $_NOT_INSTANCE;
|
||||
|
||||
private $_empty;
|
||||
|
||||
public function __construct($empty = true)
|
||||
{
|
||||
$this->_empty = $empty;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
if (!$item instanceof \Traversable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($item as $value) {
|
||||
return !$this->_empty;
|
||||
}
|
||||
|
||||
return $this->_empty;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_empty ? 'an empty traversable' : 'a non-empty traversable');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if traversable is empty.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function emptyTraversable()
|
||||
{
|
||||
if (!self::$_INSTANCE) {
|
||||
self::$_INSTANCE = new self;
|
||||
}
|
||||
|
||||
return self::$_INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if traversable is not empty.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function nonEmptyTraversable()
|
||||
{
|
||||
if (!self::$_NOT_INSTANCE) {
|
||||
self::$_NOT_INSTANCE = new self(false);
|
||||
}
|
||||
|
||||
return self::$_NOT_INSTANCE;
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace Hamcrest\Collection;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\FeatureMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if traversable size satisfies a nested matcher.
|
||||
*/
|
||||
class IsTraversableWithSize extends FeatureMatcher
|
||||
{
|
||||
|
||||
public function __construct(Matcher $sizeMatcher)
|
||||
{
|
||||
parent::__construct(
|
||||
self::TYPE_OBJECT,
|
||||
'Traversable',
|
||||
$sizeMatcher,
|
||||
'a traversable with size',
|
||||
'traversable size'
|
||||
);
|
||||
}
|
||||
|
||||
protected function featureValueOf($actual)
|
||||
{
|
||||
$size = 0;
|
||||
foreach ($actual as $value) {
|
||||
$size++;
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does traversable size satisfy a given matcher?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function traversableWithSize($size)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($size));
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\DiagnosingMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Calculates the logical conjunction of multiple matchers. Evaluation is
|
||||
* shortcut, so subsequent matchers are not called if an earlier matcher
|
||||
* returns <code>false</code>.
|
||||
*/
|
||||
class AllOf extends DiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_matchers;
|
||||
|
||||
public function __construct(array $matchers)
|
||||
{
|
||||
Util::checkAllAreMatchers($matchers);
|
||||
|
||||
$this->_matchers = $matchers;
|
||||
}
|
||||
|
||||
public function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
|
||||
{
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_matchers as $matcher) {
|
||||
if (!$matcher->matches($item)) {
|
||||
$mismatchDescription->appendDescriptionOf($matcher)->appendText(' ');
|
||||
$matcher->describeMismatch($item, $mismatchDescription);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList('(', ' and ', ')', $this->_matchers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function allOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Calculates the logical disjunction of multiple matchers. Evaluation is
|
||||
* shortcut, so subsequent matchers are not called if an earlier matcher
|
||||
* returns <code>true</code>.
|
||||
*/
|
||||
class AnyOf extends ShortcutCombination
|
||||
{
|
||||
|
||||
public function __construct(array $matchers)
|
||||
{
|
||||
parent::__construct($matchers);
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->matchesWithShortcut($item, true);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$this->describeToWithOperator($description, 'or');
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function anyOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function noneOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return IsNot::not(
|
||||
new self(Util::createMatcherArray($args))
|
||||
);
|
||||
}
|
||||
}
|
||||
Vendored
+78
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
class CombinableMatcher extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_matcher->matches($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
/** Diversion from Hamcrest-Java... Logical "and" not permitted */
|
||||
public function andAlso(Matcher $other)
|
||||
{
|
||||
return new self(new AllOf($this->_templatedListWith($other)));
|
||||
}
|
||||
|
||||
/** Diversion from Hamcrest-Java... Logical "or" not permitted */
|
||||
public function orElse(Matcher $other)
|
||||
{
|
||||
return new self(new AnyOf($this->_templatedListWith($other)));
|
||||
}
|
||||
|
||||
/**
|
||||
* This is useful for fluently combining matchers that must both pass.
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
||||
* </pre>
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function both(Matcher $matcher)
|
||||
{
|
||||
return new self($matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is useful for fluently combining matchers where either may pass,
|
||||
* for example:
|
||||
* <pre>
|
||||
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
||||
* </pre>
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function either(Matcher $matcher)
|
||||
{
|
||||
return new self($matcher);
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _templatedListWith(Matcher $other)
|
||||
{
|
||||
return array($this->_matcher, $other);
|
||||
}
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
/**
|
||||
* Provides a custom description to another matcher.
|
||||
*/
|
||||
class DescribedAs extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_descriptionTemplate;
|
||||
private $_matcher;
|
||||
private $_values;
|
||||
|
||||
const ARG_PATTERN = '/%([0-9]+)/';
|
||||
|
||||
public function __construct($descriptionTemplate, Matcher $matcher, array $values)
|
||||
{
|
||||
$this->_descriptionTemplate = $descriptionTemplate;
|
||||
$this->_matcher = $matcher;
|
||||
$this->_values = $values;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_matcher->matches($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$textStart = 0;
|
||||
while (preg_match(self::ARG_PATTERN, $this->_descriptionTemplate, $matches, PREG_OFFSET_CAPTURE, $textStart)) {
|
||||
$text = $matches[0][0];
|
||||
$index = $matches[1][0];
|
||||
$offset = $matches[0][1];
|
||||
|
||||
$description->appendText(substr($this->_descriptionTemplate, $textStart, $offset - $textStart));
|
||||
$description->appendValue($this->_values[$index]);
|
||||
|
||||
$textStart = $offset + strlen($text);
|
||||
}
|
||||
|
||||
if ($textStart < strlen($this->_descriptionTemplate)) {
|
||||
$description->appendText(substr($this->_descriptionTemplate, $textStart));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps an existing matcher and overrides the description when it fails.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function describedAs(/* $description, Hamcrest\Matcher $matcher, $values... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
$description = array_shift($args);
|
||||
$matcher = array_shift($args);
|
||||
$values = $args;
|
||||
|
||||
return new self($description, $matcher, $values);
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeDiagnosingMatcher;
|
||||
|
||||
class Every extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
protected function matchesSafelyWithDiagnosticDescription($items, Description $mismatchDescription)
|
||||
{
|
||||
foreach ($items as $item) {
|
||||
if (!$this->_matcher->matches($item)) {
|
||||
$mismatchDescription->appendText('an item ');
|
||||
$this->_matcher->describeMismatch($item, $mismatchDescription);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('every item is ')->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Matcher $itemMatcher
|
||||
* A matcher to apply to every element in an array.
|
||||
*
|
||||
* @return \Hamcrest\Core\Every
|
||||
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function everyItem(Matcher $itemMatcher)
|
||||
{
|
||||
return new self($itemMatcher);
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\FeatureMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if array size satisfies a nested matcher.
|
||||
*/
|
||||
class HasToString extends FeatureMatcher
|
||||
{
|
||||
|
||||
public function __construct(Matcher $toStringMatcher)
|
||||
{
|
||||
parent::__construct(
|
||||
self::TYPE_OBJECT,
|
||||
null,
|
||||
$toStringMatcher,
|
||||
'an object with toString()',
|
||||
'toString()'
|
||||
);
|
||||
}
|
||||
|
||||
public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription)
|
||||
{
|
||||
if (method_exists($actual, 'toString') || method_exists($actual, '__toString')) {
|
||||
return parent::matchesSafelyWithDiagnosticDescription($actual, $mismatchDescription);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function featureValueOf($actual)
|
||||
{
|
||||
if (method_exists($actual, 'toString')) {
|
||||
return $actual->toString();
|
||||
}
|
||||
|
||||
return (string) $actual;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function hasToString($matcher)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($matcher));
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*/
|
||||
class Is extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
public function matches($arg)
|
||||
{
|
||||
return $this->_matcher->matches($arg);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('is ')->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $mismatchDescription)
|
||||
{
|
||||
$this->_matcher->describeMismatch($item, $mismatchDescription);
|
||||
}
|
||||
|
||||
/**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function is($value)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($value));
|
||||
}
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* A matcher that always returns <code>true</code>.
|
||||
*/
|
||||
class IsAnything extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_message;
|
||||
|
||||
public function __construct($message = 'ANYTHING')
|
||||
{
|
||||
$this->_message = $message;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_message);
|
||||
}
|
||||
|
||||
/**
|
||||
* This matcher always evaluates to true.
|
||||
*
|
||||
* @param string $description A meaningful string used when describing itself.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsAnything
|
||||
* @factory
|
||||
*/
|
||||
public static function anything($description = 'ANYTHING')
|
||||
{
|
||||
return new self($description);
|
||||
}
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Tests if an array contains values that match one or more Matchers.
|
||||
*/
|
||||
class IsCollectionContaining extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_elementMatcher;
|
||||
|
||||
public function __construct(Matcher $elementMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_elementMatcher = $elementMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($items)
|
||||
{
|
||||
foreach ($items as $item) {
|
||||
if ($this->_elementMatcher->matches($item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($items, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendValue($items);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description
|
||||
->appendText('a collection containing ')
|
||||
->appendDescriptionOf($this->_elementMatcher)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the value is an array containing this matcher.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
||||
* //Convenience defaults to equalTo()
|
||||
* assertThat(array('a', 'b'), hasItem('b'));
|
||||
* </pre>
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function hasItem()
|
||||
{
|
||||
$args = func_get_args();
|
||||
$firstArg = array_shift($args);
|
||||
|
||||
return new self(Util::wrapValueWithIsEqual($firstArg));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the value is an array containing elements that match all of these
|
||||
* matchers.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
||||
* </pre>
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function hasItems(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
$matchers = array();
|
||||
|
||||
foreach ($args as $arg) {
|
||||
$matchers[] = self::hasItem($arg);
|
||||
}
|
||||
|
||||
return AllOf::allOf($matchers);
|
||||
}
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*/
|
||||
class IsEqual extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_item;
|
||||
|
||||
public function __construct($item)
|
||||
{
|
||||
$this->_item = $item;
|
||||
}
|
||||
|
||||
public function matches($arg)
|
||||
{
|
||||
return (($arg == $this->_item) && ($this->_item == $arg));
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendValue($this->_item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function equalTo($item)
|
||||
{
|
||||
return new self($item);
|
||||
}
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* The same as {@link Hamcrest\Core\IsSame} but with slightly different
|
||||
* semantics.
|
||||
*/
|
||||
class IsIdentical extends IsSame
|
||||
{
|
||||
|
||||
private $_value;
|
||||
|
||||
public function __construct($value)
|
||||
{
|
||||
parent::__construct($value);
|
||||
$this->_value = $value;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendValue($this->_value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests of the value is identical to $value as tested by the "===" operator.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function identicalTo($value)
|
||||
{
|
||||
return new self($value);
|
||||
}
|
||||
}
|
||||
Vendored
+67
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\DiagnosingMatcher;
|
||||
|
||||
/**
|
||||
* Tests whether the value is an instance of a class.
|
||||
*/
|
||||
class IsInstanceOf extends DiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_theClass;
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsInstanceOf
|
||||
*
|
||||
* @param string $theClass
|
||||
* The predicate evaluates to true for instances of this class
|
||||
* or one of its subclasses.
|
||||
*/
|
||||
public function __construct($theClass)
|
||||
{
|
||||
$this->_theClass = $theClass;
|
||||
}
|
||||
|
||||
protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
|
||||
{
|
||||
if (!is_object($item)) {
|
||||
$mismatchDescription->appendText('was ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!($item instanceof $this->_theClass)) {
|
||||
$mismatchDescription->appendText('[' . get_class($item) . '] ')
|
||||
->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('an instance of ')
|
||||
->appendText($this->_theClass)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*
|
||||
* @factory any
|
||||
*/
|
||||
public static function anInstanceOf($theClass)
|
||||
{
|
||||
return new self($theClass);
|
||||
}
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Calculates the logical negation of a matcher.
|
||||
*/
|
||||
class IsNot extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
public function matches($arg)
|
||||
{
|
||||
return !$this->_matcher->matches($arg);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('not ')->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value does not match $value.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function not($value)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($value));
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Is the value null?
|
||||
*/
|
||||
class IsNull extends BaseMatcher
|
||||
{
|
||||
|
||||
private static $_INSTANCE;
|
||||
private static $_NOT_INSTANCE;
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return is_null($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('null');
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is null.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function nullValue()
|
||||
{
|
||||
if (!self::$_INSTANCE) {
|
||||
self::$_INSTANCE = new self();
|
||||
}
|
||||
|
||||
return self::$_INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is not null.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function notNullValue()
|
||||
{
|
||||
if (!self::$_NOT_INSTANCE) {
|
||||
self::$_NOT_INSTANCE = IsNot::not(self::nullValue());
|
||||
}
|
||||
|
||||
return self::$_NOT_INSTANCE;
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Is the value the same object as another value?
|
||||
* In PHP terms, does $a === $b?
|
||||
*/
|
||||
class IsSame extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_object;
|
||||
|
||||
public function __construct($object)
|
||||
{
|
||||
$this->_object = $object;
|
||||
}
|
||||
|
||||
public function matches($object)
|
||||
{
|
||||
return ($object === $this->_object) && ($this->_object === $object);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('sameInstance(')
|
||||
->appendValue($this->_object)
|
||||
->appendText(')')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsSame.
|
||||
*
|
||||
* @param mixed $object
|
||||
* The predicate evaluates to true only when the argument is
|
||||
* this object.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsSame
|
||||
* @factory
|
||||
*/
|
||||
public static function sameInstance($object)
|
||||
{
|
||||
return new self($object);
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Tests whether the value has a built-in type.
|
||||
*/
|
||||
class IsTypeOf extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_theType;
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsTypeOf
|
||||
*
|
||||
* @param string $theType
|
||||
* The predicate evaluates to true for values with this built-in type.
|
||||
*/
|
||||
public function __construct($theType)
|
||||
{
|
||||
$this->_theType = strtolower($theType);
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return strtolower(gettype($item)) == $this->_theType;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText(self::getTypeDescription($this->_theType));
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $description)
|
||||
{
|
||||
if ($item === null) {
|
||||
$description->appendText('was null');
|
||||
} else {
|
||||
$description->appendText('was ')
|
||||
->appendText(self::getTypeDescription(strtolower(gettype($item))))
|
||||
->appendText(' ')
|
||||
->appendValue($item)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
public static function getTypeDescription($type)
|
||||
{
|
||||
if ($type == 'null') {
|
||||
return 'null';
|
||||
}
|
||||
|
||||
return (strpos('aeiou', substr($type, 0, 1)) === false ? 'a ' : 'an ')
|
||||
. $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a particular built-in type?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function typeOf($theType)
|
||||
{
|
||||
return new self($theType);
|
||||
}
|
||||
}
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Tests if a value (class, object, or array) has a named property.
|
||||
*
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), set('b'));
|
||||
* assertThat($foo, set('bar'));
|
||||
* assertThat('Server', notSet('defaultPort'));
|
||||
* </pre>
|
||||
*
|
||||
* @todo Replace $property with a matcher and iterate all property names.
|
||||
*/
|
||||
class Set extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_property;
|
||||
private $_not;
|
||||
|
||||
public function __construct($property, $not = false)
|
||||
{
|
||||
$this->_property = $property;
|
||||
$this->_not = $not;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
if ($item === null) {
|
||||
return false;
|
||||
}
|
||||
$property = $this->_property;
|
||||
if (is_array($item)) {
|
||||
$result = isset($item[$property]);
|
||||
} elseif (is_object($item)) {
|
||||
$result = isset($item->$property);
|
||||
} elseif (is_string($item)) {
|
||||
$result = isset($item::$$property);
|
||||
} else {
|
||||
throw new \InvalidArgumentException('Must pass an object, array, or class name');
|
||||
}
|
||||
|
||||
return $this->_not ? !$result : $result;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_not ? 'unset property ' : 'set property ')->appendText($this->_property);
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $description)
|
||||
{
|
||||
$value = '';
|
||||
if (!$this->_not) {
|
||||
$description->appendText('was not set');
|
||||
} else {
|
||||
$property = $this->_property;
|
||||
if (is_array($item)) {
|
||||
$value = $item[$property];
|
||||
} elseif (is_object($item)) {
|
||||
$value = $item->$property;
|
||||
} elseif (is_string($item)) {
|
||||
$value = $item::$$property;
|
||||
}
|
||||
parent::describeMismatch($value, $description);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value (class, object, or array) has named $property.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function set($property)
|
||||
{
|
||||
return new self($property);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value (class, object, or array) does not have named $property.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function notSet($property)
|
||||
{
|
||||
return new self($property, true);
|
||||
}
|
||||
}
|
||||
Vendored
+43
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Util;
|
||||
|
||||
abstract class ShortcutCombination extends BaseMatcher
|
||||
{
|
||||
|
||||
/**
|
||||
* @var array<\Hamcrest\Matcher>
|
||||
*/
|
||||
private $_matchers;
|
||||
|
||||
public function __construct(array $matchers)
|
||||
{
|
||||
Util::checkAllAreMatchers($matchers);
|
||||
|
||||
$this->_matchers = $matchers;
|
||||
}
|
||||
|
||||
protected function matchesWithShortcut($item, $shortcut)
|
||||
{
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_matchers as $matcher) {
|
||||
if ($matcher->matches($item) == $shortcut) {
|
||||
return $shortcut;
|
||||
}
|
||||
}
|
||||
|
||||
return !$shortcut;
|
||||
}
|
||||
|
||||
public function describeToWithOperator(Description $description, $operator)
|
||||
{
|
||||
$description->appendList('(', ' ' . $operator . ' ', ')', $this->_matchers);
|
||||
}
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* A description of a Matcher. A Matcher will describe itself to a description
|
||||
* which can later be used for reporting.
|
||||
*
|
||||
* @see Hamcrest\Matcher::describeTo()
|
||||
*/
|
||||
interface Description
|
||||
{
|
||||
|
||||
/**
|
||||
* Appends some plain text to the description.
|
||||
*
|
||||
* @param string $text
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendText($text);
|
||||
|
||||
/**
|
||||
* Appends the description of a {@link Hamcrest\SelfDescribing} value to
|
||||
* this description.
|
||||
*
|
||||
* @param \Hamcrest\SelfDescribing $value
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendDescriptionOf(SelfDescribing $value);
|
||||
|
||||
/**
|
||||
* Appends an arbitary value to the description.
|
||||
*
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendValue($value);
|
||||
|
||||
/**
|
||||
* Appends a list of values to the description.
|
||||
*
|
||||
* @param string $start
|
||||
* @param string $separator
|
||||
* @param string $end
|
||||
* @param array|\IteratorAggregate|\Iterator $values
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendValueList($start, $separator, $end, $values);
|
||||
|
||||
/**
|
||||
* Appends a list of {@link Hamcrest\SelfDescribing} objects to the
|
||||
* description.
|
||||
*
|
||||
* @param string $start
|
||||
* @param string $separator
|
||||
* @param string $end
|
||||
* @param array|\\IteratorAggregate|\\Iterator $values
|
||||
* must be instances of {@link Hamcrest\SelfDescribing}
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendList($start, $separator, $end, $values);
|
||||
}
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Official documentation for this class is missing.
|
||||
*/
|
||||
abstract class DiagnosingMatcher extends BaseMatcher
|
||||
{
|
||||
|
||||
final public function matches($item)
|
||||
{
|
||||
return $this->matchesWithDiagnosticDescription($item, new NullDescription());
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $mismatchDescription)
|
||||
{
|
||||
$this->matchesWithDiagnosticDescription($item, $mismatchDescription);
|
||||
}
|
||||
|
||||
abstract protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription);
|
||||
}
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Supporting class for matching a feature of an object. Implement
|
||||
* <code>featureValueOf()</code> in a subclass to pull out the feature to be
|
||||
* matched against.
|
||||
*/
|
||||
abstract class FeatureMatcher extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_subMatcher;
|
||||
private $_featureDescription;
|
||||
private $_featureName;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $type
|
||||
* @param string $subtype
|
||||
* @param \Hamcrest\Matcher $subMatcher The matcher to apply to the feature
|
||||
* @param string $featureDescription Descriptive text to use in describeTo
|
||||
* @param string $featureName Identifying text for mismatch message
|
||||
*/
|
||||
public function __construct($type, $subtype, Matcher $subMatcher, $featureDescription, $featureName)
|
||||
{
|
||||
parent::__construct($type, $subtype);
|
||||
|
||||
$this->_subMatcher = $subMatcher;
|
||||
$this->_featureDescription = $featureDescription;
|
||||
$this->_featureName = $featureName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implement this to extract the interesting feature.
|
||||
*
|
||||
* @param mixed $actual the target object
|
||||
*
|
||||
* @return mixed the feature to be matched
|
||||
*/
|
||||
abstract protected function featureValueOf($actual);
|
||||
|
||||
public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription)
|
||||
{
|
||||
$featureValue = $this->featureValueOf($actual);
|
||||
|
||||
if (!$this->_subMatcher->matches($featureValue)) {
|
||||
$mismatchDescription->appendText($this->_featureName)
|
||||
->appendText(' was ')->appendValue($featureValue);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
final public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_featureDescription)->appendText(' ')
|
||||
->appendDescriptionOf($this->_subMatcher)
|
||||
;
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
namespace Hamcrest\Internal;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\SelfDescribing;
|
||||
|
||||
/**
|
||||
* A wrapper around any value so that it describes itself.
|
||||
*/
|
||||
class SelfDescribingValue implements SelfDescribing
|
||||
{
|
||||
|
||||
private $_value;
|
||||
|
||||
public function __construct($value)
|
||||
{
|
||||
$this->_value = $value;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendValue($this->_value);
|
||||
}
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* A matcher over acceptable values.
|
||||
* A matcher is able to describe itself to give feedback when it fails.
|
||||
* <p/>
|
||||
* Matcher implementations should <b>NOT directly implement this interface</b>.
|
||||
* Instead, <b>extend</b> the {@link Hamcrest\BaseMatcher} abstract class,
|
||||
* which will ensure that the Matcher API can grow to support
|
||||
* new features and remain compatible with all Matcher implementations.
|
||||
* <p/>
|
||||
* For easy access to common Matcher implementations, use the static factory
|
||||
* methods in {@link Hamcrest\CoreMatchers}.
|
||||
*
|
||||
* @see Hamcrest\CoreMatchers
|
||||
* @see Hamcrest\BaseMatcher
|
||||
*/
|
||||
interface Matcher extends SelfDescribing
|
||||
{
|
||||
|
||||
/**
|
||||
* Evaluates the matcher for argument <var>$item</var>.
|
||||
*
|
||||
* @param mixed $item the object against which the matcher is evaluated.
|
||||
*
|
||||
* @return boolean <code>true</code> if <var>$item</var> matches,
|
||||
* otherwise <code>false</code>.
|
||||
*
|
||||
* @see Hamcrest\BaseMatcher
|
||||
*/
|
||||
public function matches($item);
|
||||
|
||||
/**
|
||||
* Generate a description of why the matcher has not accepted the item.
|
||||
* The description will be part of a larger description of why a matching
|
||||
* failed, so it should be concise.
|
||||
* This method assumes that <code>matches($item)</code> is false, but
|
||||
* will not check this.
|
||||
*
|
||||
* @param mixed $item The item that the Matcher has rejected.
|
||||
* @param Description $description
|
||||
* @return
|
||||
*/
|
||||
public function describeMismatch($item, Description $description);
|
||||
}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class MatcherAssert
|
||||
{
|
||||
|
||||
/**
|
||||
* Number of assertions performed.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private static $_count = 0;
|
||||
|
||||
/**
|
||||
* Make an assertion and throw {@link Hamcrest\AssertionError} if it fails.
|
||||
*
|
||||
* The first parameter may optionally be a string identifying the assertion
|
||||
* to be included in the failure message.
|
||||
*
|
||||
* If the third parameter is not a matcher it is passed to
|
||||
* {@link Hamcrest\Core\IsEqual#equalTo} to create one.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* // With an identifier
|
||||
* assertThat("apple flavour", $apple->flavour(), equalTo("tasty"));
|
||||
* // Without an identifier
|
||||
* assertThat($apple->flavour(), equalTo("tasty"));
|
||||
* // Evaluating a boolean expression
|
||||
* assertThat("some error", $a > $b);
|
||||
* assertThat($a > $b);
|
||||
* </pre>
|
||||
*/
|
||||
public static function assertThat(/* $args ... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
switch (count($args)) {
|
||||
case 1:
|
||||
self::$_count++;
|
||||
if (!$args[0]) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self::$_count++;
|
||||
if ($args[1] instanceof Matcher) {
|
||||
self::doAssert('', $args[0], $args[1]);
|
||||
} elseif (!$args[1]) {
|
||||
throw new AssertionError($args[0]);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
self::$_count++;
|
||||
self::doAssert(
|
||||
$args[0],
|
||||
$args[1],
|
||||
Util::wrapValueWithIsEqual($args[2])
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \InvalidArgumentException('assertThat() requires one to three arguments');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of assertions performed.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function getCount()
|
||||
{
|
||||
return self::$_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the number of assertions performed to zero.
|
||||
*/
|
||||
public static function resetCount()
|
||||
{
|
||||
self::$_count = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the actual assertion logic.
|
||||
*
|
||||
* If <code>$matcher</code> doesn't match <code>$actual</code>,
|
||||
* throws a {@link Hamcrest\AssertionError} with a description
|
||||
* of the failure along with the optional <code>$identifier</code>.
|
||||
*
|
||||
* @param string $identifier added to the message upon failure
|
||||
* @param mixed $actual value to compare against <code>$matcher</code>
|
||||
* @param \Hamcrest\Matcher $matcher applied to <code>$actual</code>
|
||||
* @throws AssertionError
|
||||
*/
|
||||
private static function doAssert($identifier, $actual, Matcher $matcher)
|
||||
{
|
||||
if (!$matcher->matches($actual)) {
|
||||
$description = new StringDescription();
|
||||
if (!empty($identifier)) {
|
||||
$description->appendText($identifier . PHP_EOL);
|
||||
}
|
||||
$description->appendText('Expected: ')
|
||||
->appendDescriptionOf($matcher)
|
||||
->appendText(PHP_EOL . ' but: ');
|
||||
|
||||
$matcher->describeMismatch($actual, $description);
|
||||
|
||||
throw new AssertionError((string) $description);
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user