Completed
Pull Request — master (#9)
by Cees-Jan
02:41
created

VersionsTest::testValidComposerVersions()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
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 testValidComposerVersions()
30
    {
31
        $lockData = json_decode(file_get_contents(__DIR__ . '/../../composer.lock'), true);
32
33
        $packages = array_merge($lockData['packages'], $lockData['packages-dev']);
34
35
        self::assertNotEmpty($packages);
36
37
        foreach ($packages as $package) {
38
            self::assertSame(
39
                $package['version'],
40
                Versions::getComposerVersion($package['name'])
41
            );
42
        }
43
    }
44
45
    public function testInvalidVersionsAreRejected()
46
    {
47
        $this->setExpectedException(\OutOfBoundsException::class);
48
49
        Versions::getVersion(uniqid('', true) . '/' . uniqid('', true));
50
    }
51
}
52