Passed
Push — master ( a6662b...0e2829 )
by Sebastian
03:17
created

DockerTest::testTemplateCaptainHookDevelopment()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 6
c 0
b 0
f 0
dl 0
loc 9
rs 10
cc 1
nc 1
nop 0
1
<?php
2
/**
3
 * This file is part of CaptainHook.
4
 *
5
 * (c) Sebastian Feldmann <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
namespace CaptainHook\App\Hook\Template;
11
12
use PHPUnit\Framework\TestCase;
13
use SebastianFeldmann\Camino\Path\Directory;
14
15
class DockerTest extends TestCase
16
{
17
    /**
18
     * Tests Docker::getCode
19
     */
20
    public function testTemplateCaptainHookDevelopment() : void
21
    {
22
        $repoPath = new Directory(realpath(__DIR__ . '/../../../files/template-ch'));
23
        $template = new Docker($repoPath, new Directory('/does/not/matter'), 'docker exec cap-container', '');
24
        $code     = $template->getCode('commit-msg');
25
26
        $this->assertStringContainsString('#!/usr/bin/env bash', $code);
27
        $this->assertStringContainsString('docker exec cap-container', $code);
28
        $this->assertStringContainsString('./captainhook-run', $code);
29
    }
30
31
    /**
32
     * Tests Docker::getCode
33
     */
34
    public function testTemplateCaptainHookAsLibrary() : void
35
    {
36
        $repo     = new Directory(realpath(__DIR__));
37
        $template = new Docker($repo, new Directory($repo->getPath() . '/vendor'), 'docker exec cap-container', '');
38
        $code     = $template->getCode('commit-msg');
39
40
        $this->assertStringContainsString('#!/usr/bin/env bash', $code);
41
        $this->assertStringContainsString('docker exec cap-container', $code);
42
        $this->assertStringContainsString('./vendor/bin/captainhook-run', $code);
43
    }
44
45
    /**
46
     * Tests Docker::getCode
47
     */
48
    public function testTemplateCustomPath() : void
49
    {
50
        $repoPath = new Directory(realpath(__DIR__ . '/../../../files/template-ch'));
51
        $template = new Docker($repoPath, new Directory('/does/not/matter'), 'docker exec cap-container', './foo');
52
        $code     = $template->getCode('commit-msg');
53
54
        $this->assertStringContainsString('#!/usr/bin/env bash', $code);
55
        $this->assertStringContainsString('docker exec cap-container', $code);
56
        $this->assertStringContainsString('./foo/captainhook-run', $code);
57
    }
58
}
59