<?php

namespace XCloner;

if (!\defined('ABSPATH') && \PHP_SAPI !== 'cli') {
    die;
}
require __DIR__ . "/../../vendor/autoload.php";
if (!\class_exists("XCloner\\PHPUnit_Framework_TestCase")) {
    \class_alias('XCloner\PHPUnit\Framework\TestCase', 'XCloner\PHPUnit_Framework_TestCase');
}
if (!\class_exists("XCloner\\PHPUnit_Framework_Error")) {
    \class_alias('XCloner\PHPUnit\Framework\Error\Warning', 'XCloner\PHPUnit_Framework_Error');
}
if (!\class_exists("XCloner\\PHPUnit_Util_ErrorHandler")) {
    class PHPUnit_Util_ErrorHandler
    {
        public static function handleError($errno, $errstr, $errfile, $errline)
        {
            $errorHandler = new \XCloner\PHPUnit\Util\ErrorHandler(\true, \true, \true, \true);
            return $errorHandler($errno, $errstr, $errfile, $errline);
        }
    }
    \class_alias('XCloner\PHPUnit_Util_ErrorHandler', 'PHPUnit_Util_ErrorHandler', \false);
}
if (!\class_exists("XCloner\\PHPUnit_TextUI_ResultPrinter")) {
    class PHPUnit_TextUI_ResultPrinter extends \XCloner\PHPUnit\TextUI\ResultPrinter
    {
    }
    \class_alias('XCloner\PHPUnit_TextUI_ResultPrinter', 'PHPUnit_TextUI_ResultPrinter', \false);
}
/**
 * A modified version of PHPUnit's TestCase to rid ourselves of deprecation
 * warnings since we're using two different versions of PHPUnit in this branch
 * (PHPUnit 4 and 5).
 */
class BC_PHPUnit_Framework_TestCase extends \XCloner\PHPUnit_Framework_TestCase
{
    public function bc_expectException($exception)
    {
        if (\method_exists($this, 'expectException')) {
            $this->expectException($exception);
        } elseif (\method_exists($this, 'setExpectedException')) {
            $this->setExpectedException($exception);
        }
    }
    // A BC hack to get handle the deprecation of this method in PHPUnit
    public function bc_getMock($originalClassName, $methods = array(), array $arguments = array(), $mockClassName = '', $callOriginalConstructor = \true, $callOriginalClone = \true, $callAutoload = \true, $cloneArguments = \false, $callOriginalMethods = \false, $proxyTarget = null)
    {
        if (\method_exists($this, "getMockBuilder")) {
            return $this->getMockBuilder($originalClassName)->setMethods($methods)->getMock();
        }
        return parent::getMock($originalClassName, $methods, $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $cloneArguments, $callOriginalMethods, $proxyTarget);
    }
}
/**
 * A modified version of PHPUnit's TestCase to rid ourselves of deprecation
 * warnings since we're using two different versions of PHPUnit in this branch
 * (PHPUnit 4 and 5).
 */
\class_alias('XCloner\BC_PHPUnit_Framework_TestCase', 'BC_PHPUnit_Framework_TestCase', \false);
// The only deprecation warnings we need to ignore/handle are in PHP 7.4 so far
if (\PHP_VERSION_ID >= 70400) {
    function customErrorHandler($errno, $errstr, $errfile, $errline)
    {
        // We know about this deprecation warning exists and it's already been
        // fixed in the 2.x branch. For BC reasons in the 1.x branch, we'll
        // ignore this warning to let tests pass.
        if ($errno === \E_DEPRECATED) {
            if ($errstr === "Function ReflectionType::__toString() is deprecated") {
                return \true;
            }
        }
        // Any other error should be left up to PHPUnit to handle
        return \XCloner\PHPUnit_Util_ErrorHandler::handleError($errno, $errstr, $errfile, $errline);
    }
    \set_error_handler("customErrorHandler");
}
