ComponentTest::testGetVersion()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 23
rs 9.0856
cc 1
eloc 18
nc 1
nop 0
1
<?php
2
3
/**
4
 * Moodle component manager.
5
 *
6
 * @author Luke Carrier <[email protected]>
7
 * @copyright 2016 Luke Carrier
8
 * @license GPL-3.0+
9
 */
10
11
namespace ComponentManager\Test;
12
13
use ComponentManager\Component;
14
use ComponentManager\ComponentVersion;
15
use ComponentManager\Exception\UnsatisfiedVersionException;
16
use ComponentManager\PackageRepository\PackageRepository;
17
use PHPUnit\Framework\TestCase;
18
19
/**
20
 * @coversDefaultClass \ComponentManager\Component
21
 */
22
class ComponentTest extends TestCase {
23
    public function testGetNameParts() {
24
        $component = new Component('type_name', []);
25
        $this->assertEquals(['type', 'name'], $component->getNameParts());
26
        $this->assertEquals('type', $component->getPluginType());
27
        $this->assertEquals('name', $component->getPluginName());
28
    }
29
30
    public function testGetVersion() {
31
        $goodPackageRepository = $this->createMock(PackageRepository::class);
32
        $goodPackageRepository->method('satisfiesVersion')
33
            ->willReturn(true);
34
35
        $badPackageRepository = $this->createMock(PackageRepository::class);
36
        $badPackageRepository->method('satisfiesVersion')
37
            ->willReturn(false);
38
39
        $componentVersion = new ComponentVersion(
40
            '2015021800', 'Genesis', ComponentVersion::MATURITY_STABLE, []);
41
42
        $component = new Component(
43
            'type_name', [$componentVersion], $goodPackageRepository);
44
        $this->assertEquals(
45
            $componentVersion, $component->getVersion('2015021800'));
46
47
        $this->expectException(UnsatisfiedVersionException::class);
48
        $this->expectExceptionCode(UnsatisfiedVersionException::CODE_UNKNOWN_VERSION);
49
        $component = new Component(
50
            'type_name', [$componentVersion], $badPackageRepository);
51
        $component->getVersion('2015021800');
52
    }
53
}
54