diff --git a/app/code/community/EcomDev/PHPUnit/Model/Config.php b/app/code/community/EcomDev/PHPUnit/Model/Config.php index 9f4b11fc..dd9b12e2 100644 --- a/app/code/community/EcomDev/PHPUnit/Model/Config.php +++ b/app/code/community/EcomDev/PHPUnit/Model/Config.php @@ -97,7 +97,7 @@ public function getEventConfig($area, $eventName) * * @param string $type * @param string $classAlias - * @param PHPUnit_Framework_MockObject_MockObject|PHPUnit_Framework_MockObject_MockBuilder $mock + * @param \PHPUnit\Framework\MockObject\MockObject|\PHPUnit\Framework\MockObject\MockBuilder $mock * @return EcomDev_PHPUnit_Model_Config */ public function replaceInstanceCreation($type, $classAlias, $mock) diff --git a/app/code/community/EcomDev/PHPUnit/Model/Expectation.php b/app/code/community/EcomDev/PHPUnit/Model/Expectation.php index ab51b72c..8b6bb3be 100644 --- a/app/code/community/EcomDev/PHPUnit/Model/Expectation.php +++ b/app/code/community/EcomDev/PHPUnit/Model/Expectation.php @@ -118,7 +118,7 @@ public function isLoaded() * * @see EcomDev_PHPUnit_Model_Test_LoadableInterface::loadByTestCase() */ - public function loadByTestCase(PHPUnit_Framework_TestCase $testCase) + public function loadByTestCase(\PHPUnit\Framework\TestCase $testCase) { $expectations = EcomDev_PHPUnit_Test_Case_Util::getAnnotationByNameFromClass( get_class($testCase), 'loadExpectation', array('class', 'method'), $testCase->getName(false) @@ -158,4 +158,4 @@ public function loadByTestCase(PHPUnit_Framework_TestCase $testCase) } -} \ No newline at end of file +} diff --git a/app/code/community/EcomDev/PHPUnit/Model/Fixture.php b/app/code/community/EcomDev/PHPUnit/Model/Fixture.php index baa2a58a..06cac257 100644 --- a/app/code/community/EcomDev/PHPUnit/Model/Fixture.php +++ b/app/code/community/EcomDev/PHPUnit/Model/Fixture.php @@ -295,10 +295,10 @@ public function isScopeDefault() /** * Loads fixture files from test case annotations * - * @param PHPUnit_Framework_TestCase $testCase - * @return PHPUnit_Framework_TestCase + * @param \PHPUnit\Framework\TestCase $testCase + * @return \PHPUnit\Framework\TestCase */ - public function loadByTestCase(PHPUnit_Framework_TestCase $testCase) + public function loadByTestCase(\PHPUnit\Framework\TestCase $testCase) { $fixtures = EcomDev_PHPUnit_Test_Case_Util::getAnnotationByNameFromClass( get_class($testCase), 'loadFixture', array('method', 'class'), $testCase->getName(false) @@ -376,7 +376,7 @@ public function getFixtureValue($key) */ protected function _loadFixtureFiles(array $fixtures, $classOrInstance) { - $isShared = ($this->isScopeShared() || !$classOrInstance instanceof PHPUnit_Framework_TestCase); + $isShared = ($this->isScopeShared() || !$classOrInstance instanceof \PHPUnit\Framework\TestCase); foreach ($fixtures as $fixture) { if (empty($fixture) && $isShared) { $fixture = self::DEFAULT_SHARED_FIXTURE_NAME; @@ -729,7 +729,7 @@ protected function _discardScope() * Returns VFS wrapper instance * * @return EcomDev_PHPUnit_Model_Fixture_Vfs - * @throws PHPUnit_Framework_SkippedTestError + * @throws \PHPUnit\Framework\SkippedTestError */ public function getVfs() { @@ -747,7 +747,7 @@ public function getVfs() return $this->_vfs; } - throw new PHPUnit_Framework_SkippedTestError( + throw new \PHPUnit\Framework\SkippedTestError( 'The test was skipped, since vfsStream component is not installed. ' . 'Try install submodules required for this functionality' ); diff --git a/app/code/community/EcomDev/PHPUnit/Model/Layout.php b/app/code/community/EcomDev/PHPUnit/Model/Layout.php index 2baeb62f..3efb3857 100644 --- a/app/code/community/EcomDev/PHPUnit/Model/Layout.php +++ b/app/code/community/EcomDev/PHPUnit/Model/Layout.php @@ -62,7 +62,7 @@ class EcomDev_PHPUnit_Model_Layout * Replaces creation of some block by mock object * * @param string $classAlias - * @param PHPUnit_Framework_MockObject_MockObject|PHPUnit_Framework_MockObject_MockBuilder $mock + * @param \PHPUnit\Framework\MockObject\MockObject|\PHPUnit\Framework\MockObject\MockBuilder $mock * @return EcomDev_PHPUnit_Model_Layout */ public function replaceBlockCreation($classAlias, $mock) @@ -327,7 +327,7 @@ protected function _collectActionArguments($node) $helperName = implode('/', $helperName); $arg = $arg->asArray(); unset($arg['@']); - $args[$key] = call_user_func_array(array(Mage::helper($helperName), $helperMethod), $arg); + $args[$key] = call_user_func_array(array(Mage::helper($helperName), $helperMethod), array_values($arg)); } else { /** * if there is no helper we hope that this is assoc array diff --git a/app/code/community/EcomDev/PHPUnit/Model/LoadableInterface.php b/app/code/community/EcomDev/PHPUnit/Model/LoadableInterface.php index ab8f5a2d..fd3ce152 100644 --- a/app/code/community/EcomDev/PHPUnit/Model/LoadableInterface.php +++ b/app/code/community/EcomDev/PHPUnit/Model/LoadableInterface.php @@ -25,10 +25,10 @@ interface EcomDev_PHPUnit_Model_LoadableInterface /** * Loads external data by test case instance * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * @return $this */ - public function loadByTestCase(PHPUnit_Framework_TestCase $testCase); + public function loadByTestCase(\PHPUnit\Framework\TestCase $testCase); /** * Applies external data diff --git a/app/code/community/EcomDev/PHPUnit/Model/Yaml/Loader.php b/app/code/community/EcomDev/PHPUnit/Model/Yaml/Loader.php index af79ac93..78285128 100644 --- a/app/code/community/EcomDev/PHPUnit/Model/Yaml/Loader.php +++ b/app/code/community/EcomDev/PHPUnit/Model/Yaml/Loader.php @@ -16,10 +16,6 @@ * @author Ivan Chepurnyi */ -// Loading Spyc yaml parser, -// because Symfony component is not working properly with nested structures -require_once 'Spyc/spyc.php'; - class EcomDev_PHPUnit_Model_Yaml_Loader { const XML_PATH_YAML_FILE_LOADERS = 'phpunit/suite/yaml/loaders'; @@ -109,6 +105,6 @@ public function resolveFilePath($className, $type, $name) */ public function load($filePath) { - return Spyc::YAMLLoad($filePath); + return \Symfony\Component\Yaml\Yaml::parse(file_get_contents($filePath)); } } diff --git a/app/code/community/EcomDev/PHPUnit/Test/Case.php b/app/code/community/EcomDev/PHPUnit/Test/Case.php index e992f890..0abeaa0a 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Case.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Case.php @@ -33,7 +33,7 @@ * @method EcomDev_PHPUnit_Mock_Proxy guestSession() * @method Varien_Event_Observer generateObserver(array $eventData, string $eventName = null) */ -abstract class EcomDev_PHPUnit_Test_Case extends PHPUnit_Framework_TestCase +abstract class EcomDev_PHPUnit_Test_Case extends \PHPUnit\Framework\TestCase { /** @@ -83,15 +83,15 @@ public static function app() } /** - * Returns a EcomDev_PHPUnit_Constraint_Or matcher object. + * Returns a \PHPUnit\Framework\Constraint\LogicalOr matcher object. * - * @return EcomDev_PHPUnit_Constraint_Or + * @return \PHPUnit\Framework\Constraint\LogicalOr */ - public static function logicalOr() + public static function logicalOr(): \PHPUnit\Framework\Constraint\LogicalOr { $constraints = func_get_args(); - $constraint = new EcomDev_PHPUnit_Constraint_Or; + $constraint = new \PHPUnit\Framework\Constraint\LogicalOr(); $constraint->setConstraints($constraints); return $constraint; @@ -174,7 +174,7 @@ public static function assertEventDispatchedAtLeast($eventName, $times) * * @return EcomDev_PHPUnit_Constraint_Json */ - public static function isJson() + public static function isJson(): \PHPUnit\Framework\Constraint\IsJson { return new EcomDev_PHPUnit_Constraint_Json( EcomDev_PHPUnit_Constraint_Json::TYPE_VALID @@ -204,7 +204,7 @@ public static function matchesJson(array $expectedValue, $matchType = EcomDev_PH * @param string $string * @param string $message */ - public static function assertJson($string, $message = '') + public static function assertJson($string, $message = ''): void { self::assertThat($string, self::isJson(), $message); } @@ -334,7 +334,7 @@ protected function _getExpectations() * * @param string $type * @param string $classAlias - * @param PHPUnit_Framework_MockObject_MockObject|PHPUnit_Framework_MockObject_MockBuilder $mock + * @param \PHPUnit\Framework\MockObject\MockObject|PHPUnit\Framework\MockObject\MockBuilder $mock * @return $this */ protected function replaceByMock($type, $classAlias, $mock) @@ -554,7 +554,7 @@ protected function getGroupedClassName($type, $classAlias) * @param boolean $callOriginalConstructor * @param boolean $callOriginalClone * @param boolean $callAutoload - * @return PHPUnit_Framework_MockObject_MockObject + * @return \PHPUnit\Framework\MockObject\MockObject */ public function getGroupedClassMock($type, $classAlias, $methods = array(), $isAbstract = false, array $constructorArguments = array(), diff --git a/app/code/community/EcomDev/PHPUnit/Test/Case/Config.php b/app/code/community/EcomDev/PHPUnit/Test/Case/Config.php index 819c02ca..70d8d48a 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Case/Config.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Case/Config.php @@ -201,11 +201,11 @@ public static function configRouter($area, $routeName, $expectedValue, /** * Executes configuration constraint * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message * @return void */ - public static function assertThatConfig(PHPUnit_Framework_Constraint $constraint, $message) + public static function assertThatConfig(\PHPUnit\Framework\Constraint\Constraint $constraint, $message) { self::assertThat(Mage::getConfig(), $constraint, $message); } diff --git a/app/code/community/EcomDev/PHPUnit/Test/Case/Controller.php b/app/code/community/EcomDev/PHPUnit/Test/Case/Controller.php index c92325c8..3dd12869 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Case/Controller.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Case/Controller.php @@ -135,10 +135,10 @@ public static function layoutBlockAction($blockName, $method, $type, $invocation * * @param string $blockName * @param string $propertyName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @return EcomDev_PHPUnit_Constraint_Layout_Block_Property */ - public static function layoutBlockProperty($blockName, $propertyName, PHPUnit_Framework_Constraint $constraint) + public static function layoutBlockProperty($blockName, $propertyName, \PHPUnit\Framework\Constraint\Constraint $constraint) { return new EcomDev_PHPUnit_Constraint_Layout_Block_Property($blockName, $propertyName, $constraint); } @@ -161,10 +161,10 @@ public static function request($type, $expectedValue = null) * * @param string $type * @param string $headerName - * @param PHPUnit_Framework_Constraint|null $constraint + * @param \PHPUnit\Framework\Constraint\Constraint|null $constraint * @return EcomDev_PHPUnit_Constraint_Controller_Response_Header */ - public static function responseHeader($headerName, $type, PHPUnit_Framework_Constraint $constraint = null) + public static function responseHeader($headerName, $type, \PHPUnit\Framework\Constraint\Constraint $constraint = null) { return new EcomDev_PHPUnit_Constraint_Controller_Response_Header($headerName, $type, $constraint); } @@ -172,10 +172,10 @@ public static function responseHeader($headerName, $type, PHPUnit_Framework_Cons /** * Controller response body constraint creation * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @return EcomDev_PHPUnit_Constraint_Controller_Response_Body */ - public static function responseBody(PHPUnit_Framework_Constraint $constraint) + public static function responseBody(\PHPUnit\Framework\Constraint\Constraint $constraint) { return new EcomDev_PHPUnit_Constraint_Controller_Response_Body($constraint); } @@ -437,10 +437,10 @@ public static function assertRequestBeforeForwardedRouteNot($expectedBeforeForwa /** * Assert shortcut for response assertions * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ - public static function assertThatResponse(PHPUnit_Framework_Constraint $constraint, $message) + public static function assertThatResponse(\PHPUnit\Framework\Constraint\Constraint $constraint, $message) { self::assertThat(self::getResponse(), $constraint, $message); } @@ -485,10 +485,10 @@ public static function assertResponseHeaderNotSent($headerName, $message = '') * Assert that response header is evaluated by a specified constraint * * @param string $headerName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ - public static function assertResponseHeader($headerName, PHPUnit_Framework_Constraint $constraint, $message = '') + public static function assertResponseHeader($headerName, \PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatResponse( self::responseHeader( @@ -504,10 +504,10 @@ public static function assertResponseHeader($headerName, PHPUnit_Framework_Const * Assert that response header is not evaluated by a specified constraint * * @param string $headerName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ - public static function assertResponseHeaderNot($headerName, PHPUnit_Framework_Constraint $constraint, $message = '') + public static function assertResponseHeaderNot($headerName, \PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatResponse( self::responseHeader( @@ -662,10 +662,10 @@ public static function assertResponseHeaderNotRegExp($headerName, $pcrePattern, /** * Assert that response body is evaluated by the constraint * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ - public static function assertResponseBody(PHPUnit_Framework_Constraint $constraint, $message = '') + public static function assertResponseBody(\PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatResponse( self::responseBody($constraint), @@ -676,10 +676,10 @@ public static function assertResponseBody(PHPUnit_Framework_Constraint $constrai /** * Assert that response body is not evaluated by the constraint * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ - public static function assertResponseBodyNot(PHPUnit_Framework_Constraint $constraint, $message = '') + public static function assertResponseBodyNot(\PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatResponse( self::logicalNot( @@ -939,11 +939,11 @@ public static function assertRedirectToUrlRegExp($pcrePattern, $message = '') /** * Assert shortcut for layout constaints * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message - * @internal param \EcomDev_PHPUnit_Constraint_AbstractLayout|\PHPUnit_Framework_Constraint $constaint + * @internal param \EcomDev_PHPUnit_Constraint_AbstractLayout|\PHPUnit\Framework\Constraint\Constraint $constaint */ - public static function assertThatLayout(PHPUnit_Framework_Constraint $constraint, $message) + public static function assertThatLayout(\PHPUnit\Framework\Constraint\Constraint $constraint, $message) { self::assertThat(self::getLayout(), $constraint, $message); } @@ -1151,11 +1151,11 @@ public static function assertLayoutBlockNotRendered($blockName, $message = '') * Assert that layout block rendered content is evaluated by constraint * * @param string $blockName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ public static function assertLayoutBlockRenderedContent($blockName, - PHPUnit_Framework_Constraint $constraint, $message = '') + \PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatLayout( self::layoutBlock( @@ -1171,11 +1171,11 @@ public static function assertLayoutBlockRenderedContent($blockName, * Assert that layout block rendered content is not evaluated by constraint * * @param string $blockName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ public static function assertLayoutBlockRenderedContentNot($blockName, - PHPUnit_Framework_Constraint $constraint, $message = '') + \PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatLayout( self::layoutBlock( @@ -1361,7 +1361,7 @@ public static function assertLayoutBlockAfterAll($blockName, array $after, $mess ); } - $logicalAnd = new PHPUnit_Framework_Constraint_And(); + $logicalAnd = new \PHPUnit\Framework\Constraint\LogicalAnd(); $logicalAnd->setConstraints($constaints); self::assertThatLayout($logicalAnd, $message); } @@ -1382,7 +1382,7 @@ public static function assertLayoutBlockBeforeAll($blockName, array $before, $me ); } - $logicalAnd = new PHPUnit_Framework_Constraint_And(); + $logicalAnd = new \PHPUnit\Framework\Constraint\LogicalAnd(); $logicalAnd->setConstraints($constaints); self::assertThatLayout($logicalAnd, $message); } @@ -1531,11 +1531,11 @@ public static function assertLayoutBlockActionInvokedExactly($blockName, $method * * @param string $blockName * @param string $propertyName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ public static function assertLayoutBlockProperty($blockName, $propertyName, - PHPUnit_Framework_Constraint $constraint, $message = '') + \PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatLayout( self::layoutBlockProperty($blockName, $propertyName, $constraint), @@ -1548,11 +1548,11 @@ public static function assertLayoutBlockProperty($blockName, $propertyName, * * @param string $blockName * @param string $propertyName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $message */ public static function assertLayoutBlockPropertyNot($blockName, $propertyName, - PHPUnit_Framework_Constraint $constraint, $message = '') + \PHPUnit\Framework\Constraint\Constraint $constraint, $message = '') { self::assertThatLayout( self::logicalNot( @@ -1854,7 +1854,7 @@ protected function _dispatch($baseUrl, $requestUri, $urlModel) * (non-PHPdoc) * @see EcomDev_PHPUnit_Test_Case::setUp() */ - protected function setUp() + protected function setUp():void { parent::setUp(); diff --git a/app/code/community/EcomDev/PHPUnit/Test/Case/Util.php b/app/code/community/EcomDev/PHPUnit/Test/Case/Util.php index 72fd9f54..d38fefd3 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Case/Util.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Case/Util.php @@ -17,6 +17,8 @@ */ use EcomDev_PHPUnit_Helper as TestHelper; +use PHPUnit\Framework\MockObject\MockBuilder; +use PHPUnit\Framework\MockObject\MockObject; class EcomDev_PHPUnit_Test_Case_Util { @@ -188,13 +190,13 @@ public static function getExpectation($testCaseClass = null) * Shortcut for expectation data object retrieval * Can be called with arguments array or in usual method * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * @param string|array $firstArgument * @optional @param mixed $arg1 * @optional @param mixed $arg2 * @return Varien_Object */ - public static function expected(PHPUnit_Framework_TestCase $testCase, $firstArgument = null) + public static function expected(\PHPUnit\Framework\TestCase $testCase, $firstArgument = null) { if (!self::getExpectation(get_class($testCase))->isLoaded()) { self::getExpectation()->loadByTestCase($testCase); @@ -287,11 +289,11 @@ public static function getLoadableClassAlias($className, $type, $configPath) /** * Retrieves the module name for current test case * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * @return string * @throws RuntimeException if module name was not found for the passed class name */ - public static function getModuleName(PHPUnit_Framework_TestCase $testCase) + public static function getModuleName(\PHPUnit\Framework\TestCase $testCase) { return self::getModuleNameByClassName($testCase); } @@ -311,7 +313,7 @@ public static function getAnnotationByNameFromClass($className, $name, $sources $sources = array($sources); } - $allAnnotations = PHPUnit_Util_Test::parseTestMethodAnnotations( + $allAnnotations = \PHPUnit\Util\Test::parseTestMethodAnnotations( $className, $testName ); @@ -340,12 +342,12 @@ public static function getModuleNameFromCallStack() { $backTrace = debug_backtrace(true); foreach ($backTrace as $call) { - if (isset($call['object']) && $call['object'] instanceof PHPUnit_Framework_TestCase) { + if (isset($call['object']) && $call['object'] instanceof \PHPUnit\Framework\TestCase) { return self::getModuleName($call['object']); } } - throw new RuntimeException('Unable to retrieve module name from call stack, because assertion is not called from PHPUnit_Framework_Test_Case based class method'); + throw new RuntimeException('Unable to retrieve module name from call stack, because assertion is not called from \PHPUnit\Framework\TestCase based class method'); } /** @@ -424,20 +426,19 @@ public static function getModuleNameByClassName($className) * * @param string $type * @param string $classAlias - * @param PHPUnit_Framework_MockObject_MockObject|PHPUnit_Framework_MockObject_MockBuilder $mock - * @throws PHPUnit_Framework_Exception + * @param MockObject|MockBuilder $mock * @return void + *@throws \PHPUnit\Framework\Exception */ public static function replaceByMock($type, $classAlias, $mock) { if ($mock instanceof EcomDev_PHPUnit_Mock_Proxy) { $mock = $mock->getMockInstance(); - } elseif ($mock instanceof PHPUnit_Framework_MockObject_MockBuilder) { + } elseif ($mock instanceof MockBuilder) { $mock = $mock->getMock(); - } elseif (!$mock instanceof PHPUnit_Framework_MockObject_MockObject) { - throw PHPUnit_Util_InvalidArgumentHelper::factory( - 1, 'PHPUnit_Framework_MockObject_MockObject' - ); + } elseif (!$mock instanceof MockObject) { + $stack = debug_backtrace(false); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, '\PHPUnit\Framework\MockObject\MockObject'); } // Remove addition of /data suffix if version is more than 1.6.x @@ -493,12 +494,12 @@ public static function getGroupedClassName($type, $classAlias) /** * Retrieve mock builder for grouped class alias * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * @param string $type block|model|helper * @param string $classAlias * @return EcomDev_PHPUnit_Mock_Proxy */ - public static function getGroupedClassMockBuilder(PHPUnit_Framework_TestCase $testCase, $type, $classAlias) + public static function getGroupedClassMockBuilder(\PHPUnit\Framework\TestCase $testCase, $type, $classAlias) { $className = self::getGroupedClassName($type, $classAlias); return new EcomDev_PHPUnit_Mock_Proxy($testCase, $className, $classAlias); diff --git a/app/code/community/EcomDev/PHPUnit/Test/Listener.php b/app/code/community/EcomDev/PHPUnit/Test/Listener.php index f9d043f8..f3111784 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Listener.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Listener.php @@ -1,4 +1,5 @@ */ -class EcomDev_PHPUnit_Test_Listener implements PHPUnit_Framework_TestListener +class EcomDev_PHPUnit_Test_Listener implements \PHPUnit\Framework\TestListener { - const XML_PATH_UNIT_TEST_APP = 'phpunit/suite/app/class'; + public const XML_PATH_UNIT_TEST_APP = 'phpunit/suite/app/class'; /** * First level test suite that is used * for running all the tests * - * @var PHPUnit_Framework_TestSuite + * @var \PHPUnit\Framework\TestSuite */ protected $firstLevelTestSuite = null; @@ -44,9 +45,9 @@ protected function getAppReflection() /** * A test suite started. * - * @param PHPUnit_Framework_TestSuite $suite + * @param \PHPUnit\Framework\TestSuite $suite */ - public function startTestSuite(PHPUnit_Framework_TestSuite $suite) + public function startTestSuite(\PHPUnit\Framework\TestSuite $suite): void { if ($this->firstLevelTestSuite === null) { Mage::dispatchEvent('phpunit_suite_start_before', array( @@ -77,7 +78,7 @@ public function startTestSuite(PHPUnit_Framework_TestSuite $suite) ->setScope(EcomDev_PHPUnit_Model_FixtureInterface::SCOPE_SHARED) ->loadForClass($suite->getName()); - $annotations = PHPUnit_Util_Test::parseTestMethodAnnotations( + $annotations = \PHPUnit\Util\Test::parseTestMethodAnnotations( $suite->getName() ); @@ -94,9 +95,9 @@ public function startTestSuite(PHPUnit_Framework_TestSuite $suite) /** * A test suite ended. * - * @param PHPUnit_Framework_TestSuite $suite + * @param \PHPUnit\Framework\TestSuite $suite */ - public function endTestSuite(PHPUnit_Framework_TestSuite $suite) + public function endTestSuite(\PHPUnit\Framework\TestSuite $suite): void { if (EcomDev_Utils_Reflection::getRestrictedPropertyValue($suite, 'testCase')) { Mage::dispatchEvent('phpunit_test_case_end_before', array( @@ -132,20 +133,20 @@ public function endTestSuite(PHPUnit_Framework_TestSuite $suite) /** * A test started. * - * @param PHPUnit_Framework_Test $test + * @param \PHPUnit\Framework\Test $test */ - public function startTest(PHPUnit_Framework_Test $test) + public function startTest(\PHPUnit\Framework\Test $test): void { Mage::dispatchEvent('phpunit_test_start_before', array( 'test' => $test, 'listener' => $this )); - if ($test instanceof PHPUnit_Framework_TestCase) { + if ($test instanceof \PHPUnit\Framework\TestCase) { EcomDev_PHPUnit_Helper::setTestCase($test); EcomDev_PHPUnit_Test_Case_Util::getFixture(get_class($test)) ->setScope(EcomDev_PHPUnit_Model_FixtureInterface::SCOPE_LOCAL) ->loadByTestCase($test); - $annotations = $test->getAnnotations(); + $annotations = PHPUnit\Util\Test::parseTestMethodAnnotations($test::class, $test->getName(false)); EcomDev_PHPUnit_Test_Case_Util::getFixture() ->setOptions($annotations['method']) ->apply(); @@ -162,17 +163,17 @@ public function startTest(PHPUnit_Framework_Test $test) /** * A test ended. * - * @param PHPUnit_Framework_Test $test + * @param \PHPUnit\Framework\Test $test * @param float $time */ - public function endTest(PHPUnit_Framework_Test $test, $time) + public function endTest(\PHPUnit\Framework\Test $test, $time): void { Mage::dispatchEvent('phpunit_test_end_before', array( 'test' => $test, 'listener' => $this )); - if ($test instanceof PHPUnit_Framework_TestCase) { + if ($test instanceof \PHPUnit\Framework\TestCase) { EcomDev_PHPUnit_Helper::tearDown(); EcomDev_PHPUnit_Test_Case_Util::tearDown(); @@ -194,15 +195,15 @@ public function endTest(PHPUnit_Framework_Test $test, $time) /** * An error occurred. * - * @param PHPUnit_Framework_Test $test + * @param \PHPUnit\Framework\Test $test * @param Exception $e * @param float $time */ - public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) + public function addError(\PHPUnit\Framework\Test $test, Throwable $t, float $time): void { Mage::dispatchEvent('phpunit_test_error', array( 'test' => $test, - 'exception' => $e, + 'exception' => $t, 'time' => $time, 'listener' => $this )); @@ -212,11 +213,11 @@ public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) /** * A failure occurred. * - * @param PHPUnit_Framework_Test $test - * @param PHPUnit_Framework_AssertionFailedError $e + * @param \PHPUnit\Framework\Test $test + * @param \PHPUnit\Framework\AssertionFailedError $e * @param float $time */ - public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) + public function addFailure(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\AssertionFailedError $e, $time): void { Mage::dispatchEvent('phpunit_test_failure', array( 'test' => $test, @@ -230,15 +231,15 @@ public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_Asser /** * Incomplete test. * - * @param PHPUnit_Framework_Test $test + * @param \PHPUnit\Framework\Test $test * @param Exception $e * @param float $time */ - public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) + public function addIncompleteTest(\PHPUnit\Framework\Test $test, Throwable $t, $time): void { Mage::dispatchEvent('phpunit_test_incomplete', array( 'test' => $test, - 'exception' => $e, + 'exception' => $t, 'time' => $time, 'listener' => $this )); @@ -248,15 +249,15 @@ public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $t /** * Skipped test. * - * @param PHPUnit_Framework_Test $test + * @param \PHPUnit\Framework\Test $test * @param Exception $e * @param float $time */ - public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) + public function addSkippedTest(\PHPUnit\Framework\Test $test, Throwable $t, $time): void { Mage::dispatchEvent('phpunit_test_skipped', array( 'test' => $test, - 'exception' => $e, + 'exception' => $t, 'time' => $time, 'listener' => $this )); @@ -267,19 +268,29 @@ public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time /** * Risky test. * - * @param PHPUnit_Framework_Test $test + * @param \PHPUnit\Framework\Test $test * @param Exception $e * @param float $time * @since Method available since Release 4.0.0 */ - public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time) + public function addRiskyTest(\PHPUnit\Framework\Test $test, Throwable $t, $time): void { Mage::dispatchEvent('phpunit_test_risky', array( 'test' => $test, - 'exception' => $e, + 'exception' => $t, 'time' => $time, 'listener' => $this )); // No action required } -} \ No newline at end of file + + public function addWarning(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\Warning $e, float $time): void + { + Mage::dispatchEvent('phpunit_test_warning', array( + 'test' => $test, + 'exception' => $e, + 'time' => $time, + 'listener' => $this + )); + } +} diff --git a/app/code/community/EcomDev/PHPUnit/Test/Suite.php b/app/code/community/EcomDev/PHPUnit/Test/Suite.php index 420fd57c..060ba664 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Suite.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Suite.php @@ -23,7 +23,7 @@ * if they were added to 'phpunit/suite/modules' configuration node * */ -class EcomDev_PHPUnit_Test_Suite extends PHPUnit_Framework_TestSuite +class EcomDev_PHPUnit_Test_Suite extends \PHPUnit\Framework\TestSuite { // Configuration path constants const XML_PATH_UNIT_TEST_GROUPS = 'phpunit/suite/groups'; @@ -36,7 +36,7 @@ class EcomDev_PHPUnit_Test_Suite extends PHPUnit_Framework_TestSuite /** * This method loads all available test suites for PHPUnit * - * @return PHPUnit_Framework_TestSuite + * @return \PHPUnit\Framework\TestSuite */ public static function suite() { @@ -129,10 +129,10 @@ protected static function _loadTestCases($searchPath, $moduleCodeDir) $className = uc_words(ltrim($classPath, DS), '_', DS); // Add unit test case only - // if it is a valid class extended from PHPUnit_Framework_TestCase + // if it is a valid class extended from \PHPUnit\Framework\TestCase if (class_exists($className, true)) { $reflectionClass = EcomDev_Utils_Reflection::getReflection($className); - if (!$reflectionClass->isSubclassOf('PHPUnit_Framework_TestCase') + if (!$reflectionClass->isSubclassOf('\PHPUnit\Framework\TestCase') || $reflectionClass->isAbstract()) { continue; } diff --git a/app/code/community/EcomDev/PHPUnit/Test/Suite/Group.php b/app/code/community/EcomDev/PHPUnit/Test/Suite/Group.php index 7e9d51ce..63222111 100644 --- a/app/code/community/EcomDev/PHPUnit/Test/Suite/Group.php +++ b/app/code/community/EcomDev/PHPUnit/Test/Suite/Group.php @@ -21,7 +21,7 @@ * Test suite for a group of tests (e.g. tests from the same class) * */ -class EcomDev_PHPUnit_Test_Suite_Group extends PHPUnit_Framework_TestSuite +class EcomDev_PHPUnit_Test_Suite_Group extends \PHPUnit\Framework\TestSuite { const NO_GROUP_KEYWORD = '__nogroup__'; @@ -36,7 +36,7 @@ class EcomDev_PHPUnit_Test_Suite_Group extends PHPUnit_Framework_TestSuite * Constructor adds test groups defined on global level * and adds additional logic for test names retrieval * - * @see PHPUnit_Framework_TestSuite::__construct() + * @see \PHPUnit\Framework\TestSuite::__construct() */ public function __construct($theClass = '', $groups = array()) { @@ -45,7 +45,7 @@ public function __construct($theClass = '', $groups = array()) } // Check annotations for test case name - $annotations = PHPUnit_Util_Test::parseTestMethodAnnotations( + $annotations = \PHPUnit\Util\Test::parseTestMethodAnnotations( $theClass->getName() ); @@ -62,7 +62,7 @@ public function __construct($theClass = '', $groups = array()) } foreach ($this->tests() as $test) { - if ($test instanceof PHPUnit_Framework_TestSuite) { + if ($test instanceof \PHPUnit\Framework\TestSuite) { /* @todo * Post an issue into PHPUnit bugtracker for * impossibility for specifying group by parent test case @@ -97,9 +97,9 @@ public function __construct($theClass = '', $groups = array()) /** * Outputs test suite name from annotations * - * @see PHPUnit_Framework_TestSuite::toString() + * @see \PHPUnit\Framework\TestSuite::toString() */ - public function toString() + public function toString(): string { return $this->suiteName !== null ? $this->suiteName : $this->name; } diff --git a/app/code/community/EcomDev/PHPUnitTest/Test/Helper/Call.php b/app/code/community/EcomDev/PHPUnitTest/Test/Helper/Call.php index b01e4625..b8382f14 100644 --- a/app/code/community/EcomDev/PHPUnitTest/Test/Helper/Call.php +++ b/app/code/community/EcomDev/PHPUnitTest/Test/Helper/Call.php @@ -19,14 +19,14 @@ class EcomDev_PHPUnitTest_Test_Helper_Call extends EcomDev_PHPUnit_Test_Case { /** - * @var EcomDev_PHPUnit_HelperInterface|PHPUnit_Framework_MockObject_MockObject + * @var EcomDev_PHPUnit_HelperInterface|\PHPUnit\Framework\MockObject\MockObject */ protected $helper; /** * Creates new helper for test */ - protected function setUp() + protected function setUp(): void { $this->helper = $this->getMockForAbstractClass('EcomDev_PHPUnit_HelperInterface'); $this->helper->expects($this->any()) @@ -67,4 +67,4 @@ public function tearDown() { EcomDev_PHPUnit_Helper::remove($this->helper); } -} \ No newline at end of file +} diff --git a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/AbstractConstraint.php b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/AbstractConstraint.php index 0238eb1a..1ce2fa58 100644 --- a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/AbstractConstraint.php +++ b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/AbstractConstraint.php @@ -1,6 +1,6 @@ */ -class EcomDev_PHPUnitTest_Test_Lib_AbstractHelper extends PHPUnit_Framework_TestCase +class EcomDev_PHPUnitTest_Test_Lib_AbstractHelper extends \PHPUnit\Framework\TestCase { /** * * - * @var EcomDev_PHPUnit_AbstractHelper|PHPUnit_Framework_MockObject_MockObject + * @var EcomDev_PHPUnit_AbstractHelper|\PHPUnit\Framework\MockObject\MockObject */ protected $helper = null; - protected function setUp() + protected function setUp():void { $this->helper = $this->getMockBuilder('EcomDev_PHPUnit_AbstractHelper') ->setMethods(array('hasMethod', 'callMethod')) @@ -46,7 +46,7 @@ protected function hasMethodStub($map) foreach ($map as $method => $result) { $stubMap[] = array($method, $result !== false); - if ($result instanceof PHPUnit_Framework_MockObject_Stub) { + if ($result instanceof \PHPUnit\Framework\MockObject\Stub) { $stubResult[$method] = $result; } } @@ -59,7 +59,7 @@ protected function hasMethodStub($map) $this->helper->expects($this->any()) ->method('callMethod') ->will($this->returnCallback(function ($method, array $args) use ($helper, $stubResult) { - $invocation = new PHPUnit_Framework_MockObject_Invocation_Object( + $invocation = new \PHPUnit\Framework\MockObject\InvocationHandler( get_class($helper), $method, $args, $helper ); return $stubResult[$method]->invoke($invocation); diff --git a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Constraint/Config/Resource/Script.php b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Constraint/Config/Resource/Script.php index 9f302c09..319750a5 100644 --- a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Constraint/Config/Resource/Script.php +++ b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Constraint/Config/Resource/Script.php @@ -12,7 +12,7 @@ class EcomDev_PHPUnitTest_Test_Lib_Constraint_Config_Resource_Script extends Eco */ protected $constraint = null; - protected function setUp() + protected function setUp(): void { $this->constraint = $this->getMockBuilder('EcomDev_PHPUnit_Constraint_Config_Resource_Script') ->disableOriginalConstructor() @@ -81,4 +81,4 @@ public function testGetVersionScriptsDiff($directories, $type, $from, $to) $this->assertEquals($this->expected('auto')->getDiff(), $result); } -} \ No newline at end of file +} diff --git a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Helper.php b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Helper.php index 7e82cfdb..43fd3790 100644 --- a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Helper.php +++ b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Helper.php @@ -19,7 +19,7 @@ use EcomDev_PHPUnit_Helper as Helper; -class EcomDev_PHPUnitTest_Test_Lib_Helper extends PHPUnit_Framework_TestCase +class EcomDev_PHPUnitTest_Test_Lib_Helper extends \PHPUnit\Framework\TestCase { /** * Preserved array of already set helpers, @@ -30,7 +30,7 @@ class EcomDev_PHPUnitTest_Test_Lib_Helper extends PHPUnit_Framework_TestCase protected $initializedHelpers; - protected function setUp() + protected function setUp(): void { // Retrieve existing helpers and store them for future revert $this->initializedHelpers = EcomDev_Utils_Reflection::getRestrictedPropertyValue( @@ -54,7 +54,7 @@ protected function resetHelpers() * * @param int $count * @param bool $setThem - * @return EcomDev_PHPUnit_HelperInterface[]|PHPUnit_Framework_MockObject_MockObject[] + * @return EcomDev_PHPUnit_HelperInterface[]|\PHPUnit\Framework\MockObject\MockObject[] */ protected function getHelpersForTest($count = 2, $setThem = false) { @@ -261,7 +261,7 @@ public function testGetByAction() /** * Creates invoke method tests stub * - * @return EcomDev_PHPUnit_HelperInterface[]|PHPUnit_Framework_MockObject_MockObject[] + * @return EcomDev_PHPUnit_HelperInterface[]|\PHPUnit\Framework\MockObject\MockObject[] */ protected function invokeStub() { @@ -347,7 +347,7 @@ public function testSetTestCase() foreach ($helpers as $helper) { $helper->expects($this->once()) ->method('setTestCase') - ->with(new PHPUnit_Framework_Constraint_IsIdentical($this)) + ->with(new \PHPUnit\Framework\Constraint\IsIdentical($this)) ->will($this->returnSelf()); } @@ -405,4 +405,4 @@ protected function tearDown() $this->initializedHelpers ); } -} \ No newline at end of file +} diff --git a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Mock/Proxy.php b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Mock/Proxy.php index 99a574a9..6980e22c 100644 --- a/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Mock/Proxy.php +++ b/app/code/community/EcomDev/PHPUnitTest/Test/Lib/Mock/Proxy.php @@ -16,7 +16,7 @@ * @author Ivan Chepurnyi */ -class EcomDev_PHPUnitTest_Test_Lib_Mock_Proxy extends PHPUnit_Framework_TestCase +class EcomDev_PHPUnitTest_Test_Lib_Mock_Proxy extends \PHPUnit\Framework\TestCase { /** * @var EcomDev_PHPUnit_Mock_Proxy @@ -26,7 +26,7 @@ class EcomDev_PHPUnitTest_Test_Lib_Mock_Proxy extends PHPUnit_Framework_TestCase /** * */ - protected function setUp() + protected function setUp(): void { $this->mockProxy = new EcomDev_PHPUnit_Mock_Proxy($this, 'EcomDev_PHPUnit_AbstractConstraint'); $this->mockProxy->disableOriginalConstructor(); @@ -72,7 +72,7 @@ public function testGetMockInstance() $mockInstance = $this->mockProxy->getMockInstance(); $this->assertInstanceOf( - 'PHPUnit_Framework_MockObject_MockObject', + '\PHPUnit\Framework\MockObject\MockObject', $mockInstance ); @@ -96,7 +96,7 @@ public function testExpects() { $this->assertAttributeEmpty('mockInstance', $this->mockProxy); $this->assertInstanceOf( - 'PHPUnit_Framework_MockObject_Builder_InvocationMocker', + '\PHPUnit\Framework\MockObject\Builder\InvocationMocker', $this->mockProxy->expects($this->any())->method('compareValues') ); $this->assertAttributeInstanceOf('EcomDev_PHPUnit_AbstractConstraint', 'mockInstance', $this->mockProxy); diff --git a/composer.json b/composer.json index 082aa250..7c97fbae 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,8 @@ "homepage": "http://www.ecomdev.org/shop/code-testing/php-unit-test-suite.html", "require": { "magento-hackathon/magento-composer-installer": "*", - "phpunit/phpunit": "4.1.*" + "phpunit/phpunit": "^9.5", + "symfony/yaml": "^3.0 || ^4.0 || ^5.4 || ^6.0" }, "replace": { "ivanchepurnyi/ecomdev_phpunit":"*" @@ -15,5 +16,13 @@ { "name":"Ivan Chepurnyi" } - ] + ], + "config": { + "allow-plugins": { + "magento-hackathon/magento-composer-installer": true + } + }, + "extra": { + "magento-root-dir": "root" + } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000..21fc49c5 --- /dev/null +++ b/composer.lock @@ -0,0 +1,2980 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "d727085ac1f74dde4ddd47a7a2aafa2e", + "packages": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "eloquent/enumeration", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/eloquent/enumeration.git", + "reference": "0242859435d9b135939816858348556d3cde9e3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/eloquent/enumeration/zipball/0242859435d9b135939816858348556d3cde9e3c", + "reference": "0242859435d9b135939816858348556d3cde9e3c", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "icecave/archer": "dev-develop", + "phpunit/phpunit": "^4", + "sami/sami": "^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Eloquent\\Enumeration\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Erin Millard", + "email": "ezzatron@gmail.com", + "homepage": "http://ezzatron.com/" + } + ], + "description": "An enumeration implementation for PHP.", + "homepage": "https://github.com/eloquent/enumeration", + "keywords": [ + "class", + "enum", + "enumeration", + "multiton", + "set", + "type" + ], + "support": { + "issues": "https://github.com/eloquent/enumeration/issues", + "source": "https://github.com/eloquent/enumeration/tree/master" + }, + "time": "2015-11-03T22:21:38+00:00" + }, + { + "name": "flyingmana/composer-config-reader", + "version": "20.0.1", + "source": { + "type": "git", + "url": "https://github.com/Flyingmana/composer-config-reader.git", + "reference": "47d398306f82b756d69628e13a366537f0f05973" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Flyingmana/composer-config-reader/zipball/47d398306f82b756d69628e13a366537f0f05973", + "reference": "47d398306f82b756d69628e13a366537f0f05973", + "shasum": "" + }, + "require": { + "eloquent/enumeration": "^5", + "justinrainbow/json-schema": "^5", + "php": ">=5.3" + }, + "require-dev": { + "eloquent/liberator": "^2", + "eloquent/phony": "0.14.4", + "phpunit/phpunit": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Eloquent\\Composer\\Configuration\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Erin Millard", + "email": "ezzatron@gmail.com", + "homepage": "http://ezzatron.com/" + } + ], + "description": "a fork of eloquent/composer-config-reader, A light-weight component for reading Composer configuration files.", + "homepage": "https://github.com/eloquent/composer-config-reader", + "keywords": [ + "composer", + "configuration", + "parser", + "reader" + ], + "support": { + "source": "https://github.com/Flyingmana/composer-config-reader/tree/20.0.1" + }, + "time": "2020-11-08T09:03:06+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.12", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" + }, + "time": "2022-04-13T08:02:27+00:00" + }, + { + "name": "magento-hackathon/magento-composer-installer", + "version": "4.0.2", + "source": { + "type": "git", + "url": "https://github.com/Cotya/magento-composer-installer.git", + "reference": "ece5cc5bb2a0150a743619901543036597f9eb5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Cotya/magento-composer-installer/zipball/ece5cc5bb2a0150a743619901543036597f9eb5b", + "reference": "ece5cc5bb2a0150a743619901543036597f9eb5b", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "flyingmana/composer-config-reader": "*", + "php": ">=5.5", + "symfony/console": "^2.5|^3.0|^4.0|^5.0" + }, + "require-dev": { + "composer/composer": "2.*", + "cotya/composer-test-framework": "~2.0", + "ext-json": "*", + "mikey179/vfsstream": "~1.4", + "phpunit/phpunit": "~4.3", + "phpunit/phpunit-mock-objects": "~2.3", + "squizlabs/php_codesniffer": "~2.1", + "symfony/process": "~2.5" + }, + "suggest": { + "colinmollenhour/modman": "*", + "theseer/autoload": "~1.14" + }, + "bin": [ + "bin/magento-composer-installer.php" + ], + "type": "composer-plugin", + "extra": { + "class": "MagentoHackathon\\Composer\\Magento\\Plugin" + }, + "autoload": { + "psr-0": { + "MagentoHackathon\\Composer": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Daniel Fahlke aka Flyingmana", + "email": "flyingmana@googlemail.com" + }, + { + "name": "Jörg Weller", + "email": "weller@flagbit.de" + }, + { + "name": "Karl Spies", + "email": "karl.spies@gmx.net" + }, + { + "name": "Tobias Vogt", + "email": "tobi@webguys.de" + }, + { + "name": "David Fuhr", + "email": "fuhr@flagbit.de" + }, + { + "name": "Vinai Kopp", + "email": "vinai@netzarbeiter.com" + } + ], + "description": "Composer installer for Magento modules", + "homepage": "https://github.com/magento-hackathon/magento-composer-installer", + "keywords": [ + "composer-installer", + "magento", + "openmage" + ], + "support": { + "issues": "https://github.com/Cotya/magento-composer-installer/issues", + "source": "https://github.com/Cotya/magento-composer-installer/tree/4.0.2" + }, + "funding": [ + { + "url": "https://github.com/sponsors/Flyingmana", + "type": "github" + }, + { + "url": "https://www.patreon.com/Flyingmana", + "type": "patreon" + } + ], + "time": "2022-04-20T19:23:22+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "984ea2c0f45f42dfed01d2f3987b187467c4b16d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/984ea2c0f45f42dfed01d2f3987b187467c4b16d", + "reference": "984ea2c0f45f42dfed01d2f3987b187467c4b16d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-07T08:01:20+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:55:41+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "433d05519ce6990bf3530fba6957499d327395c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:58+00:00" + }, + { + "name": "symfony/string", + "version": "v6.0.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/3db7da820a6e4a584b714b3933c34c6a7db4d86c", + "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.0.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-10T09:34:08+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.4.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "e83fe9a72011f07c662da46a05603d66deeeb487" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e83fe9a72011f07c662da46a05603d66deeeb487", + "reference": "e83fe9a72011f07c662da46a05603d66deeeb487", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.3" + }, + "require-dev": { + "symfony/console": "^5.3|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.4.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:50+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/lib/EcomDev/PHPUnit/AbstractConstraint.php b/lib/EcomDev/PHPUnit/AbstractConstraint.php index 4668fd11..84934797 100644 --- a/lib/EcomDev/PHPUnit/AbstractConstraint.php +++ b/lib/EcomDev/PHPUnit/AbstractConstraint.php @@ -22,7 +22,7 @@ * */ abstract class EcomDev_PHPUnit_AbstractConstraint - extends PHPUnit_Framework_Constraint + extends \PHPUnit\Framework\Constraint\Constraint { /** * Comparator factory @@ -101,7 +101,7 @@ abstract class EcomDev_PHPUnit_AbstractConstraint * @param string $type * @param mixed $expectedValue * - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($type, $expectedValue = null) { @@ -114,7 +114,7 @@ public function __construct($type, $expectedValue = null) } if (empty($type) || !is_string($type) || !in_array($type, $types)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $type); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $type); } @@ -127,14 +127,14 @@ public function __construct($type, $expectedValue = null) if (isset($this->_expectedValueValidation[$type][0]) && $this->_expectedValueValidation[$type][0] && $expectedValue === null) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, $expectedValueType, $expectedValue); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, $expectedValueType, $expectedValue); } // Type check if (isset($this->_expectedValueValidation[$type][1]) && $expectedValue !== null && !$this->_expectedValueValidation[$type][1]($expectedValue)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, $expectedValueType, $expectedValue); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, $expectedValueType, $expectedValue); } } @@ -203,7 +203,7 @@ protected function callProtectedByType($prefix, $argument = null) /** * Evaluates value by type. * - * @see PHPUnit_Framework_Constraint::evaluate() + * @see \PHPUnit\Framework\Constraint\Constraint::evaluate() * * @param mixed $other Value or object to evaluate. * @param string $description Additional information about the test @@ -231,7 +231,7 @@ public function evaluate($other, $description = '', $returnResult = false) * Generates a failure exception based on exception type * * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::fail() + * @see \PHPUnit\Framework\Constraint\Constraint::fail() */ public function fail($other, $description, \SebastianBergmann\Comparator\ComparisonFailure $comparisonFailure = NULL) { @@ -294,7 +294,7 @@ protected function getExpectedValue() /** * Text reperesentation of constraint * (non-PHPdoc) - * @see PHPUnit_Framework_SelfDescribing::toString() + * @see \PHPUnit\Framework\SelfDescribing::toString() */ public function toString() { diff --git a/lib/EcomDev/PHPUnit/AbstractHelper.php b/lib/EcomDev/PHPUnit/AbstractHelper.php index 7dd3029f..b4eb1ca4 100644 --- a/lib/EcomDev/PHPUnit/AbstractHelper.php +++ b/lib/EcomDev/PHPUnit/AbstractHelper.php @@ -23,7 +23,7 @@ abstract class EcomDev_PHPUnit_AbstractHelper implements EcomDev_PHPUnit_HelperInterface { /** - * @var PHPUnit_Framework_TestCase + * @var \PHPUnit\Framework\TestCase */ protected $testCase; @@ -84,14 +84,14 @@ protected function hasMethod($method) /** * Sets test case property for helper * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * * @return $this */ - public function setTestCase(PHPUnit_Framework_TestCase $testCase) + public function setTestCase(\PHPUnit\Framework\TestCase $testCase) { $this->testCase = $testCase; return $this; } -} \ No newline at end of file +} diff --git a/lib/EcomDev/PHPUnit/Constraint/AbstractConfig.php b/lib/EcomDev/PHPUnit/Constraint/AbstractConfig.php index d4fb00b1..c022638b 100644 --- a/lib/EcomDev/PHPUnit/Constraint/AbstractConfig.php +++ b/lib/EcomDev/PHPUnit/Constraint/AbstractConfig.php @@ -37,12 +37,12 @@ abstract class EcomDev_PHPUnit_Constraint_AbstractConfig * @param string $nodePath * @param string $type * @param mixed $expectedValue - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($nodePath, $type, $expectedValue = null) { if (empty($nodePath) || !is_string($nodePath)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $type); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $type); } $this->_nodePath = $nodePath; @@ -127,4 +127,4 @@ protected function getXmlAsDom($xmlValue) return $domValue; } -} \ No newline at end of file +} diff --git a/lib/EcomDev/PHPUnit/Constraint/AbstractLayout.php b/lib/EcomDev/PHPUnit/Constraint/AbstractLayout.php index 059b36e1..9793f32b 100644 --- a/lib/EcomDev/PHPUnit/Constraint/AbstractLayout.php +++ b/lib/EcomDev/PHPUnit/Constraint/AbstractLayout.php @@ -25,7 +25,7 @@ abstract class EcomDev_PHPUnit_Constraint_AbstractLayout extends EcomDev_PHPUnit /** * Custom failure description for showing layout related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config.php b/lib/EcomDev/PHPUnit/Constraint/Config.php index 46dc9a10..76121241 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config.php @@ -21,7 +21,7 @@ * * */ -class EcomDev_PHPUnit_Constraint_Config extends PHPUnit_Framework_Constraint +class EcomDev_PHPUnit_Constraint_Config extends \PHPUnit\Framework\Constraint\Constraint { /** * Configuration instance @@ -33,7 +33,7 @@ class EcomDev_PHPUnit_Constraint_Config extends PHPUnit_Framework_Constraint /** * Configuration constraint * - * @var PHPUnit_Framework_Constraint + * @var \PHPUnit\Framework\Constraint\Constraint */ protected $constraint = null; @@ -41,13 +41,13 @@ class EcomDev_PHPUnit_Constraint_Config extends PHPUnit_Framework_Constraint * Creates configuration constraint for config object * * @param $constraint - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception * @internal param \Varien_Simplexml_Config $config */ public function __construct($constraint) { if (!$constraint instanceof EcomDev_PHPUnit_Constraint_ConfigInterface) { - throw PHPUnit_Util_InvalidArgumentHelper::factory( + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException( 1, 'EcomDev_PHPUnit_Constraint_ConfigInterface' ); } @@ -99,7 +99,7 @@ protected function getNodeValue($config) * @param string $description * @param bool $returnResult * @return bool - * @see PHPUnit_Framework_Constraint::evaluate() + * @see \PHPUnit\Framework\Constraint\Constraint::evaluate() */ public function evaluate($config, $description = '', $returnResult = false) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/ClassAlias.php b/lib/EcomDev/PHPUnit/Constraint/Config/ClassAlias.php index 4593443a..d4bab3b1 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/ClassAlias.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/ClassAlias.php @@ -56,12 +56,12 @@ class EcomDev_PHPUnit_Constraint_Config_ClassAlias * @param string $classAlias * @param string $expectedClassName * @param string $type - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($group, $classAlias, $expectedClassName, $type = self::TYPE_CLASS_ALIAS) { if (!isset($this->_textByGroup[$group])) { - throw PHPUnit_Util_InvalidArgumentHelper::factory( + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException( 1, implode( '|', @@ -78,7 +78,7 @@ public function __construct($group, $classAlias, $expectedClassName, $type = sel } if (!strpos($classAlias, '/')) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class/alias', $classAlias); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, 'class/alias', $classAlias); } list($this->_classAliasPrefix, $this->_classAliasName) = explode('/', $classAlias, 2); @@ -127,7 +127,7 @@ protected function textClassAlias() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/EventObserver.php b/lib/EcomDev/PHPUnit/Constraint/Config/EventObserver.php index e627d36a..24295246 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/EventObserver.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/EventObserver.php @@ -77,28 +77,28 @@ class EcomDev_PHPUnit_Constraint_Config_EventObserver * @param string $observerMethod * @param string $type * @param string|null $observerName - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($area, $eventName, $observerClassAlias, $observerMethod, $type = self::TYPE_DEFINED, $observerName = null) { if (empty($area) || !is_string($area)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $area); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $area); } if (empty($eventName) || !is_string($eventName)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string', $eventName); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, 'string', $eventName); } if (empty($observerClassAlias) || !is_string($observerClassAlias)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string', $observerClassAlias); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(3, 'string', $observerClassAlias); } if (empty($observerMethod) || !is_string($observerMethod)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(4, 'string', $observerMethod); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(4, 'string', $observerMethod); } if ($observerName !== null && !is_string($observerName)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(6, 'string', $observerName); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(6, 'string', $observerName); } $this->_area = $area; @@ -166,7 +166,7 @@ protected function textDefined() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/Layout.php b/lib/EcomDev/PHPUnit/Constraint/Config/Layout.php index 944845cc..96aa817f 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/Layout.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/Layout.php @@ -190,7 +190,7 @@ protected function textLayoutFile() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/Module.php b/lib/EcomDev/PHPUnit/Constraint/Config/Module.php index c01fb82b..45e4a16c 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/Module.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/Module.php @@ -217,7 +217,7 @@ protected function compareVersion($other, $operator) /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/Node.php b/lib/EcomDev/PHPUnit/Constraint/Config/Node.php index 26a61772..b7ac8436 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/Node.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/Node.php @@ -285,7 +285,7 @@ protected function textContainValues() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/Resource.php b/lib/EcomDev/PHPUnit/Constraint/Config/Resource.php index a7b8f169..3bde68ad 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/Resource.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/Resource.php @@ -50,7 +50,7 @@ class EcomDev_PHPUnit_Constraint_Config_Resource * @param string $type * @param string $moduleDirectory * @param mixed $expectedValue - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception * @internal param string $nodePath */ public function __construct($moduleName, $type, $moduleDirectory = null, $expectedValue = null) @@ -76,7 +76,7 @@ public function __construct($moduleName, $type, $moduleDirectory = null, $expect if (($this->_type === self::TYPE_SETUP_SCHEME_EXISTS || $this->_type === self::TYPE_SETUP_DATA_EXISTS) && !is_dir($moduleDirectory)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'real directory', $moduleDirectory); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(3, 'real directory', $moduleDirectory); } } @@ -228,7 +228,7 @@ public function textSetupDataExists() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/Resource/Script.php b/lib/EcomDev/PHPUnit/Constraint/Config/Resource/Script.php index 85c72463..98af260b 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/Resource/Script.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/Resource/Script.php @@ -65,7 +65,7 @@ class EcomDev_PHPUnit_Constraint_Config_Resource_Script * @param string $moduleDirectory * @param null|string $resourceName * @param null|string $expectedVersions - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception * @internal param string $nodePath * @internal param mixed $expectedValue */ @@ -85,7 +85,7 @@ public function __construct($moduleName, $type, $moduleDirectory, $resourceName $this->_resourceName = $resourceName; if (!is_dir($moduleDirectory)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'real directory', $moduleDirectory); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(3, 'real directory', $moduleDirectory); } } @@ -363,7 +363,7 @@ public function textScriptData() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/Route.php b/lib/EcomDev/PHPUnit/Constraint/Config/Route.php index b8403081..1b75764a 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/Route.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/Route.php @@ -279,7 +279,7 @@ protected function getModules(Varien_Simplexml_Element $argsNode) /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Config/TableAlias.php b/lib/EcomDev/PHPUnit/Constraint/Config/TableAlias.php index f97d5548..5ff6c263 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Config/TableAlias.php +++ b/lib/EcomDev/PHPUnit/Constraint/Config/TableAlias.php @@ -32,12 +32,12 @@ class EcomDev_PHPUnit_Constraint_Config_TableAlias * @param string $tableAlias * @param string $expectedTableName * @param string $type - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($tableAlias, $expectedTableName, $type = self::TYPE_TABLE_ALIAS) { if (!strpos($tableAlias, '/')) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'table alias', $tableAlias); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, 'table alias', $tableAlias); } list($this->_tableAliasPrefix, $this->_tableAliasName) = explode('/', $tableAlias, 2); @@ -93,7 +93,7 @@ protected function textTableAlias() /** * Custom failure description for showing config related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Controller/AbstractResponse.php b/lib/EcomDev/PHPUnit/Constraint/Controller/AbstractResponse.php index b54cb8ad..4b91b12a 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Controller/AbstractResponse.php +++ b/lib/EcomDev/PHPUnit/Constraint/Controller/AbstractResponse.php @@ -26,7 +26,7 @@ abstract class EcomDev_PHPUnit_Constraint_Controller_AbstractResponse /** * Custom failure description for showing response related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { @@ -35,4 +35,4 @@ protected function customFailureDescription($other) $this->toString() ); } -} \ No newline at end of file +} diff --git a/lib/EcomDev/PHPUnit/Constraint/Controller/Request.php b/lib/EcomDev/PHPUnit/Constraint/Controller/Request.php index d539257d..4f98bf8f 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Controller/Request.php +++ b/lib/EcomDev/PHPUnit/Constraint/Controller/Request.php @@ -296,7 +296,7 @@ protected function textActionName() /** * Custom failure description for showing request related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Body.php b/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Body.php index 1c041a43..3fca3e24 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Body.php +++ b/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Body.php @@ -28,13 +28,13 @@ class EcomDev_PHPUnit_Constraint_Controller_Response_Body /** * Constraint for controller response body assertions * - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $type */ - public function __construct(PHPUnit_Framework_Constraint $constraint = null, $type = self::TYPE_CONSTRAINT) + public function __construct(\PHPUnit\Framework\Constraint\Constraint $constraint = null, $type = self::TYPE_CONSTRAINT) { $this->_expectedValueValidation += array( - self::TYPE_CONSTRAINT => array(true, null, 'PHPUnit_Framework_Constraint') + self::TYPE_CONSTRAINT => array(true, null, '\PHPUnit\Framework\Constraint\Constraint') ); parent::__construct($type, $constraint); @@ -75,4 +75,4 @@ protected function customFailureDescription($other) $this->toString() ); } -} \ No newline at end of file +} diff --git a/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Header.php b/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Header.php index f94ba165..4b55776c 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Header.php +++ b/lib/EcomDev/PHPUnit/Constraint/Controller/Response/Header.php @@ -38,17 +38,17 @@ class EcomDev_PHPUnit_Constraint_Controller_Response_Header * * @param string $headerName * @param string $type - * @param PHPUnit_Framework_Constraint $constraint - * @throws PHPUnit_Framework_Exception + * @param \PHPUnit\Framework\Constraint\Constraint $constraint + * @throws \PHPUnit\Framework\Exception */ - public function __construct($headerName, $type, PHPUnit_Framework_Constraint $constraint = null) + public function __construct($headerName, $type, \PHPUnit\Framework\Constraint\Constraint $constraint = null) { if (empty($headerName) || !is_string($headerName)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $headerName); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $headerName); } $this->_expectedValueValidation += array( - self::TYPE_CONSTRAINT => array(true, null, 'PHPUnit_Framework_Constraint') + self::TYPE_CONSTRAINT => array(true, null, '\PHPUnit\Framework\Constraint\Constraint') ); parent::__construct($type, $constraint); diff --git a/lib/EcomDev/PHPUnit/Constraint/Exception.php b/lib/EcomDev/PHPUnit/Constraint/Exception.php index be593c4a..88e8aead 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Exception.php +++ b/lib/EcomDev/PHPUnit/Constraint/Exception.php @@ -21,7 +21,7 @@ * * */ -class EcomDev_PHPUnit_Constraint_Exception extends PHPUnit_Framework_ExpectationFailedException +class EcomDev_PHPUnit_Constraint_Exception extends \PHPUnit\Framework\AssertionFailedError { protected $diff = null; diff --git a/lib/EcomDev/PHPUnit/Constraint/Json.php b/lib/EcomDev/PHPUnit/Constraint/Json.php index 3b47cb3a..3e80f704 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Json.php +++ b/lib/EcomDev/PHPUnit/Constraint/Json.php @@ -47,7 +47,7 @@ class EcomDev_PHPUnit_Constraint_Json extends EcomDev_PHPUnit_AbstractConstraint public function __construct($type, $expectedValue = null, $matchType = self::MATCH_AND) { if ($expectedValue !== null && (empty($matchType) || !is_string($matchType))) { - PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string', $matchType); + EcomDev_PHPUnit_Helper::createInvalidArgumentException(3, 'string', $matchType); } $this->_expectedValueValidation += array( @@ -155,7 +155,7 @@ protected function textMatch() /** * Custom failure description for showing json related errors * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::customFailureDescription() + * @see \PHPUnit\Framework\Constraint\Constraint::customFailureDescription() */ protected function customFailureDescription($other, $description, $not) { diff --git a/lib/EcomDev/PHPUnit/Constraint/Layout/Block.php b/lib/EcomDev/PHPUnit/Constraint/Layout/Block.php index 2bebb868..3eae2956 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Layout/Block.php +++ b/lib/EcomDev/PHPUnit/Constraint/Layout/Block.php @@ -50,12 +50,12 @@ class EcomDev_PHPUnit_Constraint_Layout_Block extends EcomDev_PHPUnit_Constraint * @param string $blockName * @param string $type * @param string|null $expectedValue - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($blockName, $type, $expectedValue = null) { if (empty($blockName) || !is_string($blockName)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $blockName); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $blockName); } $this->_blockName = $blockName; diff --git a/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Action.php b/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Action.php index 509e6cae..4bca2606 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Action.php +++ b/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Action.php @@ -76,21 +76,21 @@ class EcomDev_PHPUnit_Constraint_Layout_Block_Action extends EcomDev_PHPUnit_Con * @param int|null $invocationCount * @param array $arguments * @param string $searchType - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($blockName, $method, $type, $invocationCount = null, array $arguments = null, $searchType = self::SEARCH_TYPE_AND) { if (empty($blockName) || !is_string($blockName)) { - PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $blockName); + EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $blockName); } if (empty($method) || !is_string($method)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string', $method); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, 'string', $method); } if (!is_string($searchType)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(6, 'string', $searchType); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(6, 'string', $searchType); } $this->_expectedValueValidation += array( diff --git a/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Property.php b/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Property.php index d287194a..dea6ae6f 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Property.php +++ b/lib/EcomDev/PHPUnit/Constraint/Layout/Block/Property.php @@ -44,19 +44,19 @@ class EcomDev_PHPUnit_Constraint_Layout_Block_Property * * @param string $blockName * @param mixed|null $propertyName - * @param PHPUnit_Framework_Constraint $constraint + * @param \PHPUnit\Framework\Constraint\Constraint $constraint * @param string $type - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ - public function __construct($blockName, $propertyName, PHPUnit_Framework_Constraint $constraint, + public function __construct($blockName, $propertyName, \PHPUnit\Framework\Constraint\Constraint $constraint, $type = self::TYPE_CONSTRAINT) { if (empty($blockName) || !is_string($blockName)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string', $blockName); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(1, 'string', $blockName); } if (empty($propertyName) || !is_string($propertyName)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string', $propertyName); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(2, 'string', $propertyName); } parent::__construct($type, $constraint); @@ -69,7 +69,7 @@ public function __construct($blockName, $propertyName, PHPUnit_Framework_Constra * Retuns number of constraint assertions * * (non-PHPdoc) - * @see PHPUnit_Framework_Constraint::count() + * @see \PHPUnit\Framework\Constraint\Constraint::count() */ public function count() { diff --git a/lib/EcomDev/PHPUnit/Constraint/Layout/Handle.php b/lib/EcomDev/PHPUnit/Constraint/Layout/Handle.php index c43537a0..03f1a985 100644 --- a/lib/EcomDev/PHPUnit/Constraint/Layout/Handle.php +++ b/lib/EcomDev/PHPUnit/Constraint/Layout/Handle.php @@ -50,12 +50,12 @@ class EcomDev_PHPUnit_Constraint_Layout_Handle extends EcomDev_PHPUnit_Constrain * @param string $handle layout handle name * @param string $type * @param string|null $position layout handle position - * @throws PHPUnit_Framework_Exception + * @throws \PHPUnit\Framework\Exception */ public function __construct($handle, $type, $position = null) { if ($position !== null && !is_string($position)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string', $position); + throw EcomDev_PHPUnit_Helper::createInvalidArgumentException(3, 'string', $position); } $this->_position = $position; diff --git a/lib/EcomDev/PHPUnit/Constraint/Or.php b/lib/EcomDev/PHPUnit/Constraint/Or.php deleted file mode 100644 index 8ec7302b..00000000 --- a/lib/EcomDev/PHPUnit/Constraint/Or.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ - -/** - * Fix of comparison type for Or constraint - */ -class EcomDev_PHPUnit_Constraint_Or extends PHPUnit_Framework_Constraint_Or -{ - protected function failureDescription($other) - { - $text = ''; - - foreach ($this->constraints as $key => $constraint) { - if ($key > 0) { - $text .= ' or '; - } - - $text .= $constraint->failureDescription($other); - } - - return $text; - } -} \ No newline at end of file diff --git a/lib/EcomDev/PHPUnit/Helper.php b/lib/EcomDev/PHPUnit/Helper.php index d76147de..dfde42fa 100644 --- a/lib/EcomDev/PHPUnit/Helper.php +++ b/lib/EcomDev/PHPUnit/Helper.php @@ -142,9 +142,9 @@ public static function invoke($action /*, $arg1, $arg2, $arg3 ... $argN */) /** * Sets test case to each helper instance * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase */ - public static function setTestCase(PHPUnit_Framework_TestCase $testCase) + public static function setTestCase(\PHPUnit\Framework\TestCase $testCase) { foreach (self::$helpers as $helper) { $helper->setTestCase($testCase); @@ -193,4 +193,20 @@ protected static function getHelpersByClass($className) }); } -} \ No newline at end of file + public static function createInvalidArgumentException(int $argument, string $type, $value = null): PHPUnit\Framework\Exception + { + $stack = debug_backtrace(false); + + return new \PHPUnit\Framework\Exception( + sprintf( + 'Argument #%d%sof %s::%s() must be a %s', + $argument, + $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', + $stack[1]['class'], + $stack[1]['function'], + $type + ) + ); + } + +} diff --git a/lib/EcomDev/PHPUnit/HelperInterface.php b/lib/EcomDev/PHPUnit/HelperInterface.php index 54b93338..eca203ad 100644 --- a/lib/EcomDev/PHPUnit/HelperInterface.php +++ b/lib/EcomDev/PHPUnit/HelperInterface.php @@ -42,8 +42,8 @@ public function invoke($action, array $args); /** * Sets test case for usage in helper * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * @return $this */ - public function setTestCase(PHPUnit_Framework_TestCase $testCase); + public function setTestCase(\PHPUnit\Framework\TestCase $testCase); } diff --git a/lib/EcomDev/PHPUnit/Mock/Proxy.php b/lib/EcomDev/PHPUnit/Mock/Proxy.php index 53e797dc..7ac132b1 100644 --- a/lib/EcomDev/PHPUnit/Mock/Proxy.php +++ b/lib/EcomDev/PHPUnit/Mock/Proxy.php @@ -17,16 +17,106 @@ */ use EcomDev_Utils_Reflection as ReflectionUtil; +use PHPUnit\Framework\MockObject\Builder\InvocationMocker as BuilderInvocationMocker; +use PHPUnit\Framework\MockObject\CannotUseAddMethodsException; +use PHPUnit\Framework\MockObject\CannotUseOnlyMethodsException; +use PHPUnit\Framework\MockObject\ClassAlreadyExistsException; +use PHPUnit\Framework\MockObject\ClassIsFinalException; +use PHPUnit\Framework\MockObject\DuplicateMethodException; +use PHPUnit\Framework\MockObject\Generator; +use PHPUnit\Framework\MockObject\InvalidMethodNameException; +use PHPUnit\Framework\MockObject\InvocationHandler; +use PHPUnit\Framework\MockObject\MockBuilder; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\OriginalConstructorInvocationRequiredException; +use PHPUnit\Framework\MockObject\ReflectionException; +use PHPUnit\Framework\MockObject\Rule\InvocationOrder; +use PHPUnit\Framework\MockObject\RuntimeException; +use PHPUnit\Framework\MockObject\UnknownTypeException; /** * PHPUnit Mock Object Proxy * * Used to support mock builder auto-apply as soon as expects method is called. + * @method \PHPUnit\Framework\MockObject\Builder\InvocationMocker method($constraint) */ -class EcomDev_PHPUnit_Mock_Proxy - extends PHPUnit_Framework_MockObject_MockBuilder - implements PHPUnit_Framework_MockObject_MockObject +class EcomDev_PHPUnit_Mock_Proxy implements PHPUnit\Framework\MockObject\MockObject { + /** + * @var TestCase + */ + private $testCase; + + /** + * @var string + */ + private $type; + + /** + * @var null|string[] + */ + private $methods = []; + + /** + * @var bool + */ + private $emptyMethodsArray = false; + + /** + * @var string + */ + private $mockClassName = ''; + + /** + * @var array + */ + private $constructorArgs = []; + + /** + * @var bool + */ + private $originalConstructor = true; + + /** + * @var bool + */ + private $originalClone = true; + + /** + * @var bool + */ + private $autoload = true; + + /** + * @var bool + */ + private $cloneArguments = false; + + /** + * @var bool + */ + private $callOriginalMethods = false; + + /** + * @var ?object + */ + private $proxyTarget; + + /** + * @var bool + */ + private $allowMockingUnknownTypes = true; + + /** + * @var bool + */ + private $returnValueGeneration = true; + + /** + * @var Generator + */ + private $generator; + protected $mockInstance; /** @@ -39,14 +129,16 @@ class EcomDev_PHPUnit_Mock_Proxy /** * Added class alias as property * - * @param PHPUnit_Framework_TestCase $testCase + * @param \PHPUnit\Framework\TestCase $testCase * @param array|string $type * @param null $classAlias */ - public function __construct(PHPUnit_Framework_TestCase $testCase, $type, $classAlias = null) + public function __construct(\PHPUnit\Framework\TestCase $testCase, $type, $classAlias = null) { - parent::__construct($testCase, $type); $this->classAlias = $classAlias; + $this->testCase = $testCase; + $this->type = $type; + $this->generator = new Generator; } /** @@ -95,7 +187,7 @@ public function preserveMethods() /** * Proxied mock instance retrieval * - * @return PHPUnit_Framework_MockObject_MockObject + * @return \PHPUnit\Framework\MockObject\MockObject */ public function getMockInstance() { @@ -121,36 +213,17 @@ public function getMockClass() } - /** - * Registers a new expectation in the mock object and returns the match - * object which can be infused with further details. - * - * @param PHPUnit_Framework_MockObject_Matcher_Invocation $matcher - * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker - */ - public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher) + public function expects(InvocationOrder $invocationRule): BuilderInvocationMocker { - return $this->getMockInstance()->expects($matcher); + return $this->getMockInstance()->expects($invocationRule); } - /** - * Invokes replaceByMock test util method with current mock object proxy instance - * - * @param $type - * @return $this - */ public function replaceByMock($type) { EcomDev_PHPUnit_Test_Case_Util::replaceByMock($type, $this->classAlias, $this); return $this; } - /** - * Returns invocation mocker for - * - * @throws RuntimeException - * @return PHPUnit_Framework_MockObject_InvocationMocker - */ public function __phpunit_getInvocationMocker() { throw new RuntimeException( @@ -159,61 +232,458 @@ public function __phpunit_getInvocationMocker() ); } + public function __phpunit_setOriginalObject($originalObject): void + { + throw new RuntimeException( + 'Mock object proxy cannot be used for setting original object, ' + . 'use getMockInstance method for real mock object' + ); + } + + public function __phpunit_verify(bool $unsetInvocationMocker = true): void + { + throw new RuntimeException( + 'Mock object proxy cannot be used for verifying mock' + . 'use getMockInstance method for real mock object' + ); + } + + public function __call($name, $arguments) + { + return call_user_func_array( + array($this->getMockInstance(), $name), + $arguments + ); + } + + + public function __phpunit_getInvocationHandler(): InvocationHandler + { + throw new RuntimeException( + 'Mock object proxy cannot be used for retrieving invocation handler' + . 'use getMockInstance method for real mock object' + ); + } + + public function __phpunit_hasMatchers(): bool + { + throw new RuntimeException( + 'Mock object proxy cannot be used for verifying mock' + . 'use getMockInstance method for real mock object' + ); + } + + public function __phpunit_setReturnValueGeneration(bool $returnValueGeneration): void + { + throw new RuntimeException( + 'Mock object proxy cannot be used for setting return value generation' + . 'use getMockInstance method for real mock object' + ); + } + /** - * Returns static invocation mocker + * Creates a mock object using a fluent interface. * + * @throws \PHPUnit\Framework\InvalidArgumentException + * @throws ClassAlreadyExistsException + * @throws ClassIsFinalException + * @throws DuplicateMethodException + * @throws InvalidMethodNameException + * @throws OriginalConstructorInvocationRequiredException + * @throws ReflectionException * @throws RuntimeException - * @return PHPUnit_Framework_MockObject_InvocationMocker + * @throws UnknownTypeException + * + * @psalm-return MockObject&MockedType */ - public static function __phpunit_getStaticInvocationMocker() + public function getMock(): MockObject { - throw new RuntimeException( - 'Mock object proxy cannot be used for retrieving invocation mockers, ' - . 'use getMockInstance method for real mock object' + $object = $this->generator->getMock( + $this->type, + !$this->emptyMethodsArray ? $this->methods : null, + $this->constructorArgs, + $this->mockClassName, + $this->originalConstructor, + $this->originalClone, + $this->autoload, + $this->cloneArguments, + $this->callOriginalMethods, + $this->proxyTarget, + $this->allowMockingUnknownTypes, + $this->returnValueGeneration ); + + $this->testCase->registerMockObject($object); + + return $object; } /** - * @param $originalObject - * @return PHPUnit_Framework_MockObject_InvocationMocker - * @since Method available since Release 2.0.0 + * Creates a mock object for an abstract class using a fluent interface. + * + * @psalm-return MockObject&MockedType + * + * @throws \PHPUnit\Framework\Exception + * @throws ReflectionException + * @throws RuntimeException */ - public function __phpunit_setOriginalObject($originalObject) + public function getMockForAbstractClass(): MockObject { - throw new RuntimeException( - 'Mock object proxy cannot be used for retrieving invocation mockers, ' - . 'use getMockInstance method for real mock object' + $object = $this->generator->getMockForAbstractClass( + $this->type, + $this->constructorArgs, + $this->mockClassName, + $this->originalConstructor, + $this->originalClone, + $this->autoload, + $this->methods, + $this->cloneArguments ); + + $this->testCase->registerMockObject($object); + + return $object; } /** - * Verifies that the current expectation is valid. If everything is OK the - * code should just return, if not it must throw an exception. + * Creates a mock object for a trait using a fluent interface. + * + * @psalm-return MockObject&MockedType * - * @throws PHPUnit_Framework_ExpectationFailedException + * @throws \PHPUnit\Framework\Exception + * @throws ReflectionException + * @throws RuntimeException */ - public function __phpunit_verify() + public function getMockForTrait(): MockObject { - throw new RuntimeException( - 'Mock object proxy cannot be used for verifying mock' - . 'use getMockInstance method for real mock object' + $object = $this->generator->getMockForTrait( + $this->type, + $this->constructorArgs, + $this->mockClassName, + $this->originalConstructor, + $this->originalClone, + $this->autoload, + $this->methods, + $this->cloneArguments ); + + $this->testCase->registerMockObject($object); + + return $object; } /** - * Forwards all method calls to mock instance + * Specifies the subset of methods to mock. Default is to mock none of them. * - * @param string $name - * @param array $arguments - * @return mixed + * @deprecated https://github.com/sebastianbergmann/phpunit/pull/3687 + * + * @return $this */ - public function __call($name, $arguments) + public function setMethods(?array $methods = null): self { - return call_user_func_array( - array($this->getMockInstance(), $name), - $arguments + if ($methods === null) { + $this->methods = $methods; + } else { + $this->methods = array_merge($this->methods ?? [], $methods); + } + + return $this; + } + + /** + * Specifies the subset of methods to mock, requiring each to exist in the class. + * + * @param string[] $methods + * + * @throws CannotUseOnlyMethodsException + * @throws ReflectionException + * + * @return $this + */ + public function onlyMethods(array $methods): self + { + if (empty($methods)) { + $this->emptyMethodsArray = true; + + return $this; + } + + try { + $reflector = new ReflectionClass($this->type); + // @codeCoverageIgnoreStart + } catch (\ReflectionException $e) { + throw new ReflectionException( + $e->getMessage(), + (int) $e->getCode(), + $e + ); + } + // @codeCoverageIgnoreEnd + + foreach ($methods as $method) { + if (!$reflector->hasMethod($method)) { + throw new CannotUseOnlyMethodsException($this->type, $method); + } + } + + $this->methods = array_merge($this->methods ?? [], $methods); + + return $this; + } + + /** + * Specifies methods that don't exist in the class which you want to mock. + * + * @param string[] $methods + * + * @throws CannotUseAddMethodsException + * @throws ReflectionException + * @throws RuntimeException + * + * @return $this + */ + public function addMethods(array $methods): self + { + if (empty($methods)) { + $this->emptyMethodsArray = true; + + return $this; + } + + try { + $reflector = new ReflectionClass($this->type); + // @codeCoverageIgnoreStart + } catch (\ReflectionException $e) { + throw new ReflectionException( + $e->getMessage(), + (int) $e->getCode(), + $e + ); + } + // @codeCoverageIgnoreEnd + + foreach ($methods as $method) { + if ($reflector->hasMethod($method)) { + throw new CannotUseAddMethodsException($this->type, $method); + } + } + + $this->methods = array_merge($this->methods ?? [], $methods); + + return $this; + } + + /** + * Specifies the subset of methods to not mock. Default is to mock all of them. + * + * @deprecated https://github.com/sebastianbergmann/phpunit/pull/3687 + * + * @throws ReflectionException + */ + public function setMethodsExcept(array $methods = []): self + { + return $this->setMethods( + array_diff( + $this->generator->getClassMethods($this->type), + $methods + ) ); } - -} \ No newline at end of file + /** + * Specifies the arguments for the constructor. + * + * @return $this + */ + public function setConstructorArgs(array $args): self + { + $this->constructorArgs = $args; + + return $this; + } + + /** + * Specifies the name for the mock class. + * + * @return $this + */ + public function setMockClassName(string $name): self + { + $this->mockClassName = $name; + + return $this; + } + + /** + * Disables the invocation of the original constructor. + * + * @return $this + */ + public function disableOriginalConstructor(): self + { + $this->originalConstructor = false; + + return $this; + } + + /** + * Enables the invocation of the original constructor. + * + * @return $this + */ + public function enableOriginalConstructor(): self + { + $this->originalConstructor = true; + + return $this; + } + + /** + * Disables the invocation of the original clone constructor. + * + * @return $this + */ + public function disableOriginalClone(): self + { + $this->originalClone = false; + + return $this; + } + + /** + * Enables the invocation of the original clone constructor. + * + * @return $this + */ + public function enableOriginalClone(): self + { + $this->originalClone = true; + + return $this; + } + + /** + * Disables the use of class autoloading while creating the mock object. + * + * @return $this + */ + public function disableAutoload(): self + { + $this->autoload = false; + + return $this; + } + + /** + * Enables the use of class autoloading while creating the mock object. + * + * @return $this + */ + public function enableAutoload(): self + { + $this->autoload = true; + + return $this; + } + + /** + * Disables the cloning of arguments passed to mocked methods. + * + * @return $this + */ + public function disableArgumentCloning(): self + { + $this->cloneArguments = false; + + return $this; + } + + /** + * Enables the cloning of arguments passed to mocked methods. + * + * @return $this + */ + public function enableArgumentCloning(): self + { + $this->cloneArguments = true; + + return $this; + } + + /** + * Enables the invocation of the original methods. + * + * @return $this + */ + public function enableProxyingToOriginalMethods(): self + { + $this->callOriginalMethods = true; + + return $this; + } + + /** + * Disables the invocation of the original methods. + * + * @return $this + */ + public function disableProxyingToOriginalMethods(): self + { + $this->callOriginalMethods = false; + $this->proxyTarget = null; + + return $this; + } + + /** + * Sets the proxy target. + * + * @return $this + */ + public function setProxyTarget(object $object): self + { + $this->proxyTarget = $object; + + return $this; + } + + /** + * @return $this + */ + public function allowMockingUnknownTypes(): self + { + $this->allowMockingUnknownTypes = true; + + return $this; + } + + /** + * @return $this + */ + public function disallowMockingUnknownTypes(): self + { + $this->allowMockingUnknownTypes = false; + + return $this; + } + + /** + * @return $this + */ + public function enableAutoReturnValueGeneration(): self + { + $this->returnValueGeneration = true; + + return $this; + } + + /** + * @return $this + */ + public function disableAutoReturnValueGeneration(): self + { + $this->returnValueGeneration = false; + + return $this; + } +}