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

VersionsTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 5
Bugs 0 Features 0
Metric Value
wmc 5
c 5
b 0
f 0
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 testValidComposerVersions() 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 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