Passed
Branch master (6a8d47)
by Brice
03:48
created

DistTest::testBuildFromArray()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 14
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
namespace CompoLab\Tests\Domain;
4
5
use CompoLab\Domain\Dist;
6
use CompoLab\Domain\Repository;
7
use CompoLab\Domain\ValueObject\Dir;
8
use CompoLab\Domain\ValueObject\Reference;
9
use CompoLab\Domain\ValueObject\Url;
10
use CompoLab\Domain\ValueObject\Version;
11
use PHPUnit\Framework\TestCase;
12
13
final class DistTest extends TestCase
14
{
15
    private static $repository;
16
17
    public static function setUpBeforeClass()
18
    {
19
        self::$repository = new Repository(
20
            new Url('https://composer.my-website.com'),
21
            new Dir(__DIR__ . '/../../cache')
22
        );
23
    }
24
25
    public function testBuildFromArray()
26
    {
27
        $dist = Dist::buildFromArray(__DIR__ . '/../../cache', 'vendor/project', Version::buildFromString('v1.2.3'), [
28
            'type'      => 'tar',
29
            'url'       => 'https://composer.my-website.com/archives/vendor/project/v1.2.3/6a6e0ea9479c821d4b5728c0d3c9840e71085e82.tar.gz',
30
            'reference' => '6a6e0ea9479c821d4b5728c0d3c9840e71085e82',
31
            'localPath' => __DIR__ . '/../../cache/archives/vendor/project/v1.2.3/6a6e0ea9479c821d4b5728c0d3c9840e71085e82.tar.gz',
32
        ]);
33
34
        $array = $dist->_toArray();
35
36
        $this->assertEquals('tar', $array['type']);
37
        $this->assertEquals('6a6e0ea9479c821d4b5728c0d3c9840e71085e82', $array['reference']);
38
        $this->assertEquals('4da053f3f10c255f9f15357cd5be012ebe4d6467', $array['shasum']);
39
    }
40
41
    public function testBuildArchivePath()
42
    {
43
        $path = Dist::buildArchivePath(
44
            'vendor/project',
45
            Version::buildFromString('master'),
46
            new Reference('6a6e0ea9479c821d4b5728c0d3c9840e71085e82')
47
        );
48
49
        self::assertEquals('/archives/vendor/project/dev-master/6a6e0ea9479c821d4b5728c0d3c9840e71085e82.tar.gz', $path);
50
    }
51
}
52