Completed
Pull Request — master (#31)
by
unknown
02:54
created

ComposerLoaderExtensionStub::onAfterBuild()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 0
nc 1
nop 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace BringYourOwnIdeas\UpdateChecker\Tests\Stubs;
4
5
use BringYourOwnIdeas\UpdateChecker\Extensions\ComposerLoaderExtension;
6
use Composer\Package\Package;
7
use Composer\Repository\ArrayRepository;
8
use Composer\Repository\BaseRepository;
9
use SilverStripe\Dev\TestOnly;
10
11
/**
12
 * A partially stubbed version of the {@link ComposerLoaderExtension} extension which doesn't rely on Composer
13
 */
14
class ComposerLoaderExtensionStub extends ComposerLoaderExtension implements TestOnly
15
{
16
    protected function getRepository()
17
    {
18
        $vendorModule = new Package('silverstripe/framework', '4.1.1.0', '4.1.1');
19
        $vendorModule->setType('silverstripe-vendormodule');
20
21
        $silverstripeModule = new Package('silverstripe-themes/simple', '2.1.0.1', '2.1.0');
22
        $silverstripeModule->setType('silverstripe-module');
23
24
        $generalPackage = new Package('something/unrelated', '1.2.3.4', '1.2.3');
25
        $generalPackage->setType('package');
26
27
        return new ArrayRepository([$vendorModule, $silverstripeModule, $generalPackage]);
28
    }
29
30
    protected function getInstalledConstraint(BaseRepository $repository, $packageName)
31
    {
32
        switch ($packageName) {
33
            case 'silverstripe/framework':
34
                return '4.1.1';
35
            case 'silverstripe-themes/simple':
36
                return '~2.1.0';
37
            case 'something/unrelated':
38
                return '^1.0';
39
            default:
40
                return '';
41
        }
42
    }
43
44
    public function onAfterBuild()
45
    {
46
        // noop - don't load local Composer repository
47
    }
48
}
49