Completed
Pull Request — master (#2)
by Abdul Malik
06:04
created

VersionsTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 5
c 3
b 0
f 1
lcom 1
cbo 1
dl 0
loc 41
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testValidVersions() 0 15 2
A testInvalidVersionsAreRejected() 0 6 1
A testGetShortVersion() 0 15 2
1
<?php
2
3
namespace PackageVersionsTest;
4
5
use PackageVersions\Versions;
6
use PHPUnit_Framework_TestCase;
7
8
/**
9
 * @covers \PackageVersions\Versions
10
 */
11
final class VersionsTest extends PHPUnit_Framework_TestCase
12
{
13
    public function testValidVersions()
14
    {
15
        $lockData = json_decode(file_get_contents(__DIR__ . '/../../composer.lock'), true);
16
17
        $packages = array_merge($lockData['packages'], $lockData['packages-dev']);
18
19
        self::assertNotEmpty($packages);
20
21
        foreach ($packages as $package) {
22
            self::assertSame(
23
                $package['version'] . '@' . $package['source']['reference'],
24
                Versions::getVersion($package['name'])
25
            );
26
        }
27
    }
28
29
    public function testInvalidVersionsAreRejected()
30
    {
31
        $this->expectException(\OutOfBoundsException::class);
32
33
        Versions::getVersion(uniqid('', true) . '/' . uniqid('', true));
34
    }
35
36
    public function testGetShortVersion()
37
    {
38
        $lockData = json_decode(file_get_contents(__DIR__ . '/../../composer.lock'), true);
39
40
        $packages = array_merge($lockData['packages'], $lockData['packages-dev']);
41
42
        self::assertNotEmpty($packages);
43
44
        foreach ($packages as $package) {
45
            self::assertSame(
46
                $package['version'],
47
                Versions::getShortVersion($package['name'])
48
            );
49
        }
50
    }
51
}
52