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

VersionsTest::testGetShortVersion()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 15
rs 9.4285
cc 2
eloc 8
nc 2
nop 0
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