/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Module/Test/Unit/ConflictCheckerTest.php
177 строк
7 KB
Manish Ranjan
AC-16248: PHPUnit 12 Upgrade | Fix Framework unit tests
09 янв 2026, 19:35
09 янв 2026, 19:35
de6cafc
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Framework\Module\Test\Unit; use Magento\Framework\Module\ConflictChecker; use Magento\Framework\Module\ModuleList; use Magento\Framework\Module\PackageInfo; use Magento\Framework\Module\PackageInfoFactory; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\Attributes\DataProvider; class ConflictCheckerTest extends TestCase { /** * @param array $conflictReturnMap * @param array $enabledModules * @param string $moduleName * @param array $expected */ #[DataProvider('checkConflictWhenEnableModuleDataProvider')] public function testCheckConflictsWhenEnableModules( $conflictReturnMap, $enabledModules, $moduleName, $expected ) { $moduleListMock = $this->createMock(ModuleList::class); $packageInfoMock = $this->createMock(PackageInfo::class); $moduleListMock->expects($this->any()) ->method('getNames') ->willReturn($enabledModules); $packageInfoMock->expects($this->any()) ->method('getConflict') ->willReturnMap($conflictReturnMap); $packageInfoMock->expects($this->any()) ->method('getVersion') ->willReturn('0.1'); $packageInfoFactoryMock = $this->createMock(PackageInfoFactory::class); $packageInfoFactoryMock->expects($this->once()) ->method('create') ->willReturn($packageInfoMock); $conflictChecker = new ConflictChecker($moduleListMock, $packageInfoFactoryMock); $this->assertEquals($expected, $conflictChecker->checkConflictsWhenEnableModules($moduleName)); } /** * @return array */ public static function checkConflictWhenEnableModuleDataProvider() { return [ [ [['Vendor_A', ['Vendor_B' => '0.1']], ['Vendor_B', []]], ['Vendor_A'], ['Vendor_B'], ['Vendor_B' => ['Vendor_A conflicts with current Vendor_B version 0.1 (version should not be 0.1)']] ], [ [['Vendor_A', ['Vendor_B' => '0.1']], ['Vendor_B', []]], [], ['Vendor_B'], ['Vendor_B' => []] ], [ [['Vendor_B', ['Vendor_A' => '0.1']], ['Vendor_A', []]], ['Vendor_A'], ['Vendor_B'], ['Vendor_B' => ['Vendor_B conflicts with current Vendor_A version 0.1 (version should not be 0.1)']] ], [ [['Vendor_B', ['Vendor_A' => '0.1']], ['Vendor_A', []]], [], ['Vendor_B'], ['Vendor_B' => []] ], [ [['Vendor_A', []], ['Vendor_B', []]], ['Vendor_A'], ['Vendor_B'], ['Vendor_B' => []] ], [ [['Vendor_A', []], ['Vendor_B', []], ['Vendor_C', []]], ['Vendor_A'], ['Vendor_B', 'Vendor_C'], ['Vendor_B' => [], 'Vendor_C' => []] ], [ [['Vendor_A', ['Vendor_C' => '0.1']], ['Vendor_B', []], ['Vendor_C', []]], ['Vendor_A'], ['Vendor_B', 'Vendor_C'], [ 'Vendor_B' => [], 'Vendor_C' => ['Vendor_A conflicts with current Vendor_C version 0.1 (version should not be 0.1)'] ] ], [ [['Vendor_A', []], ['Vendor_B', ['Vendor_C' => '0.1']], ['Vendor_C', []]], ['Vendor_A'], ['Vendor_B', 'Vendor_C'], [ 'Vendor_B' => ['Vendor_B conflicts with current Vendor_C version 0.1 (version should not be 0.1)'], 'Vendor_C' => ['Vendor_B conflicts with current Vendor_C version 0.1 (version should not be 0.1)'] ] ], [ [['Vendor_A', ['Vendor_B' => '>=0.1']], ['Vendor_B', []]], ['Vendor_A'], ['Vendor_B'], ['Vendor_B' => ['Vendor_A conflicts with current Vendor_B version 0.1 (version should not be >=0.1)']] ], [ [['Vendor_A', ['Vendor_B' => '~0.1']], ['Vendor_B', []]], ['Vendor_A'], ['Vendor_B'], ['Vendor_B' => ['Vendor_A conflicts with current Vendor_B version 0.1 (version should not be ~0.1)']] ], ]; } public function testCheckConflictWhenEnableModuleDifferentVersion() { $moduleListMock = $this->createMock(ModuleList::class); $packageInfoMock = $this->createMock(PackageInfo::class); $moduleListMock->expects($this->any()) ->method('getNames') ->willReturn(['Vendor_A', 'Vendor_B']); $packageInfoMock->expects($this->any()) ->method('getConflict') ->willReturnMap([ ['Vendor_A', []], ['Vendor_B', []], ['Vendor_C', ['Vendor_A' => '>=0.2,<0.3', 'Vendor_B' => '<0.4']] ]); $packageInfoMock->expects($this->any()) ->method('getVersion') ->willReturnMap([['Vendor_A', '0.2'], ['Vendor_B', '0.4']]); $packageInfoFactoryMock = $this->createMock(PackageInfoFactory::class); $packageInfoFactoryMock->expects($this->once()) ->method('create') ->willReturn($packageInfoMock); $conflictChecker = new ConflictChecker($moduleListMock, $packageInfoFactoryMock); $this->assertEquals( ['Vendor_C' => ['Vendor_C conflicts with current Vendor_A version 0.2 (version should not be >=0.2,<0.3)']], $conflictChecker->checkConflictsWhenEnableModules(['Vendor_C']) ); } public function testCheckConflictWhenEnableModuleDifferentVersionWithCurEnabledModules() { $moduleListMock = $this->createMock(ModuleList::class); $packageInfoMock = $this->createMock(PackageInfo::class); $packageInfoMock->expects($this->any()) ->method('getConflict') ->willReturnMap([ ['Vendor_A', []], ['Vendor_B', []], ['Vendor_C', ['Vendor_A' => '>=0.2,<0.3', 'Vendor_B' => '<0.4']] ]); $packageInfoMock->expects($this->any()) ->method('getVersion') ->willReturnMap([['Vendor_A', '0.2'], ['Vendor_B', '0.4']]); $packageInfoFactoryMock = $this->createMock(PackageInfoFactory::class); $packageInfoFactoryMock->expects($this->once()) ->method('create') ->willReturn($packageInfoMock); $conflictChecker = new ConflictChecker($moduleListMock, $packageInfoFactoryMock); $this->assertEquals( ['Vendor_C' => ['Vendor_C conflicts with current Vendor_A version 0.2 (version should not be >=0.2,<0.3)']], $conflictChecker->checkConflictsWhenEnableModules(['Vendor_C'], ['Vendor_A', 'Vendor_B']) ); } }