‪TYPO3CMS  11.5
ExtensionRepositoryTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
6 
10 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
11 
12 class ‪ExtensionRepositoryTest extends UnitTestCase
13 {
18  {
19  // foo2 should be kept
20  $foo1 = new ‪Extension();
21  $foo1->setExtensionKey('foo');
22  $foo1->setVersion('1.0.0');
23  $foo2 = new ‪Extension();
24  $foo2->setExtensionKey('foo');
25  $foo2->setVersion('1.0.1');
26 
27  // bar1 should be kept
28  $bar1 = new ‪Extension();
29  $bar1->setExtensionKey('bar');
30  $bar1->setVersion('1.1.2');
31  $bar2 = new ‪Extension();
32  $bar2->setExtensionKey('bar');
33  $bar2->setVersion('1.1.1');
34  $bar3 = new ‪Extension();
35  $bar3->setExtensionKey('bar');
36  $bar3->setVersion('1.0.3');
37 
38  $input = [$foo1, $foo2, $bar1, $bar2, $bar3];
39  $subject = $this->getAccessibleMock(ExtensionRepository::class, ['dummy'], [], '', false);
40  self::assertEquals(['foo' => $foo2, 'bar' => $bar1], $subject->_call('filterYoungestVersionOfExtensionList', $input, true));
41  }
42 
47  {
48  $suitableDependency = ‪Dependency::createFromEmConf('typo3', '3.6.1');
49  $suitableDependencies = new \SplObjectStorage();
50  $suitableDependencies->attach($suitableDependency);
51 
52  $unsuitableDependency = ‪Dependency::createFromEmConf('typo3', '-4.3.0');
53 
54  $unsuitableDependencies = new \SplObjectStorage();
55  $unsuitableDependencies->attach($unsuitableDependency);
56 
57  // foo1 should be kept
58  $foo1 = new ‪Extension();
59  $foo1->setExtensionKey('foo');
60  $foo1->setVersion('1.0.0');
61  $foo1->setDependencies($suitableDependencies);
62 
63  $foo2 = new ‪Extension();
64  $foo2->setExtensionKey('foo');
65  $foo2->setVersion('1.0.1');
66  $foo2->setDependencies($unsuitableDependencies);
67 
68  // bar2 should be kept
69  $bar1 = new ‪Extension();
70  $bar1->setExtensionKey('bar');
71  $bar1->setVersion('1.1.2');
72  $bar1->setDependencies($unsuitableDependencies);
73 
74  $bar2 = new ‪Extension();
75  $bar2->setExtensionKey('bar');
76  $bar2->setVersion('1.1.1');
77  $bar2->setDependencies($suitableDependencies);
78 
79  $input = [$foo1, $foo2, $bar1, $bar2];
80  $subject = $this->getAccessibleMock(ExtensionRepository::class, ['dummy'], [], '', false);
81  self::assertEquals(['foo' => $foo1, 'bar' => $bar2], $subject->_call('filterYoungestVersionOfExtensionList', $input, false));
82  }
83 
88  {
89  $suitableDependency = ‪Dependency::createFromEmConf('typo3', '10.4.0-99.99.99');
90  $suitableDependencies = new \SplObjectStorage();
91  $suitableDependencies->attach($suitableDependency);
92  $suitableExtension = new ‪Extension();
93  $suitableExtension->setExtensionKey('suitable');
94  $suitableExtension->setVersion('1.0.0');
95  $suitableExtension->setDependencies($suitableDependencies);
96 
97  $unsuitableDependency = ‪Dependency::createFromEmConf('typo3', '9.5.0-10.4.99');
98  $unsuitableDependencies = new \SplObjectStorage();
99  $unsuitableDependencies->attach($unsuitableDependency);
100  $unsuitableExtension = new ‪Extension();
101  $unsuitableExtension->setExtensionKey('unsuitable');
102  $unsuitableExtension->setVersion('1.0.0');
103  $unsuitableExtension->setDependencies($unsuitableDependencies);
104 
105  $input = [$suitableExtension, $unsuitableExtension];
106  $subject = $this->getAccessibleMock(ExtensionRepository::class, ['dummy'], [], '', false);
107 
108  self::assertSame($this->count($subject->_call('getExtensionsSuitableForTypo3Version', $input)), 1);
109  }
110 }
‪TYPO3\CMS\Extensionmanager\Domain\Model\Dependency
Definition: Dependency.php:28
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Repository
Definition: ExtensionRepositoryTest.php:5
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Repository\ExtensionRepositoryTest\filterYoungestVersionOfExtensionListFiltersAListToLatestVersion
‪filterYoungestVersionOfExtensionListFiltersAListToLatestVersion()
Definition: ExtensionRepositoryTest.php:17
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Repository\ExtensionRepositoryTest
Definition: ExtensionRepositoryTest.php:13
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension
Definition: Extension.php:28
‪TYPO3\CMS\Extensionmanager\Domain\Model\Dependency\createFromEmConf
‪static self createFromEmConf(string $identifier, string $versionConstraint='', string $dependencyType='depends')
Definition: Dependency.php:77
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Repository\ExtensionRepositoryTest\filterYoungestVersionOfExtensionListFiltersAListToLatestVersionWithOnlyCompatibleExtensions
‪filterYoungestVersionOfExtensionListFiltersAListToLatestVersionWithOnlyCompatibleExtensions()
Definition: ExtensionRepositoryTest.php:46
‪TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Repository\ExtensionRepositoryTest\getExtensionsSuitableForTypo3VersionReturnsOnlySuitableOnes
‪getExtensionsSuitableForTypo3VersionReturnsOnlySuitableOnes()
Definition: ExtensionRepositoryTest.php:87
‪TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository
Definition: ExtensionRepository.php:34