Completed
Push — master ( d83206...aa4419 )
by Marco
10s
created

PickLastMinorVersionFromCollectionTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 32
c 0
b 0
f 0
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testEmptyVersionCollectionResultsInException() 0 7 1
A lastStableMinorVersionForCollectionProvider() 0 7 1
A testForRepository() 0 7 1
1
<?php
2
declare(strict_types=1);
3
4
namespace RoaveTest\ApiCompare\Git;
5
6
use InvalidArgumentException;
7
use Roave\ApiCompare\Git\PickLastMinorVersionFromCollection;
8
use PHPUnit\Framework\TestCase;
9
use Version\VersionsCollection;
10
11
/**
12
 * @covers \Roave\ApiCompare\Git\PickLastMinorVersionFromCollection
13
 */
14
final class PickLastMinorVersionFromCollectionTest extends TestCase
15
{
16
    public function lastStableMinorVersionForCollectionProvider() : array
17
    {
18
        return [
19
            ['1.2.0', ['1.1.0', '1.1.1', '1.2.0', '1.2.1']],
20
            ['1.2.0', ['1.1.0', '1.1.1', '1.2.0']],
21
            ['1.2.0', ['1.2.0', '1.2.1']],
22
            ['1.2.0', ['1.2.0']],
23
        ];
24
    }
25
26
    /**
27
     * @dataProvider lastStableMinorVersionForCollectionProvider
28
     */
29
    public function testForRepository(string $expectedVersion, array $collectionOfVersions) : void
30
    {
31
        self::assertSame(
32
            $expectedVersion,
33
            (new PickLastMinorVersionFromCollection())->forVersions(
34
                VersionsCollection::fromArray($collectionOfVersions)
35
            )->getVersionString()
36
        );
37
    }
38
39
    public function testEmptyVersionCollectionResultsInException() : void
40
    {
41
        $versions = VersionsCollection::fromArray([]);
42
        $determiner = new PickLastMinorVersionFromCollection();
43
44
        $this->expectException(InvalidArgumentException::class);
45
        $determiner->forVersions($versions);
46
    }
47
}
48