Passed
Push — master ( 58d3a9...553f37 )
by Marco
02:50
created

PickLastMinorVersionFromCollectionTest::testEmptyVersionCollectionResultsInException()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace RoaveTest\BackwardCompatibility\Git;
6
7
use PHPUnit\Framework\TestCase;
8
use Roave\BackwardCompatibility\Git\PickLastMinorVersionFromCollection;
9
use Version\Version;
10
use Version\VersionsCollection;
11
use function array_map;
12
13
/**
14
 * @covers \Roave\BackwardCompatibility\Git\PickLastMinorVersionFromCollection
15
 */
16
final class PickLastMinorVersionFromCollectionTest extends TestCase
17
{
18
    /**
19
     * @return string[][]|string[][][]
20
     */
21
    public function lastStableMinorVersionForCollectionProvider() : array
22
    {
23
        return [
24
            ['1.2.0', ['1.1.0', '1.1.1', '1.2.0', '1.2.1']],
25
            ['1.2.0', ['1.1.0', '1.1.1', '1.2.0']],
26
            ['1.2.0', ['1.2.0', '1.2.1']],
27
            ['1.2.0', ['1.2.0']],
28
        ];
29
    }
30
31
    /**
32
     * @param string[] $collectionOfVersions
33
     * @dataProvider lastStableMinorVersionForCollectionProvider
34
     */
35
    public function testForRepository(string $expectedVersion, array $collectionOfVersions) : void
36
    {
37
        self::assertSame(
38
            $expectedVersion,
39
            (new PickLastMinorVersionFromCollection())->forVersions(
40
                new VersionsCollection(...array_map(function (string $version) : Version {
41
                    return Version::fromString($version);
42
                }, $collectionOfVersions))
43
            )->getVersionString()
44
        );
45
    }
46
}
47