Completed
Push — master ( 8b8afe...5f2bbe )
by Greg
02:21
created

tests/unit/Task/SemVerTest.php (2 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
use AspectMock\Test as test;
4
5
class SemVerTest extends \Codeception\TestCase\Test
6
{
7
    public function testSemver()
8
    {
9
        $semver = test::double('Robo\Task\Development\SemVer', ['dump' => null]);
10
        $res = (new \Robo\Task\Development\SemVer())
11
            ->increment('major')
12
            ->prerelease('RC')
13
            ->increment('patch')
14
            ->run();
15
        verify($res->getMessage())->equals('v1.0.1-RC.1');
16
        $semver->verifyInvoked('dump');
17
    }
18
19
    public function testSemverIncrementMinorAfterIncrementedPatch()
20
    {
21
        $semver = test::double('Robo\Task\Development\SemVer', ['dump' => null]);
22
        $res = (new \Robo\Task\Development\SemVer())
23
            ->increment('patch')
24
            ->run();
25
        verify($res->getMessage())->equals('v0.0.1');
26
        $res = (new \Robo\Task\Development\SemVer())
27
            ->increment('minor')
28
            ->run();
29
        verify($res->getMessage())->equals('v0.1.0');
30
        $semver->verifyInvoked('dump');
31
    }
32
33
    public function testSemverIncrementMajorAfterIncrementedMinorAndPatch()
34
    {
35
        $semver = test::double('Robo\Task\Development\SemVer', ['dump' => null]);
36
        $res = (new \Robo\Task\Development\SemVer())
37
            ->increment('patch')
38
            ->run();
39
        verify($res->getMessage())->equals('v0.0.1');
40
        $res = (new \Robo\Task\Development\SemVer())
41
            ->increment('minor')
42
            ->run();
43
        verify($res->getMessage())->equals('v0.1.0');
44
        $res = (new \Robo\Task\Development\SemVer())
45
            ->increment('major')
46
            ->run();
47
        verify($res->getMessage())->equals('v1.0.0');
48
        $semver->verifyInvoked('dump');
49
    }
50
51
    public function testSemverParseFileWithWindowsLineEndings()
52
    {
53
        $fixturePath = tempnam(sys_get_temp_dir(), 'semver');
54
        $semverFile = str_replace("\n", "\r\n", file_get_contents(codecept_data_dir().'.semver'));
55
        file_put_contents($fixturePath, $semverFile);
56
57
        $res = (new \Robo\Task\Development\SemVer($fixturePath))
58
            ->run();
59
        verify($res->getMessage())->equals('v1.0.1-RC.1');
60
        @unlink($fixturePath);
0 ignored issues
show
Security Best Practice introduced by
It seems like you do not handle an error condition here. This can introduce security issues, and is generally not recommended.

If you suppress an error, we recommend checking for the error condition explicitly:

// For example instead of
@mkdir($dir);

// Better use
if (@mkdir($dir) === false) {
    throw new \RuntimeException('The directory '.$dir.' could not be created.');
}
Loading history...
61
    }
62
63
    public function testThrowsExceptionWhenIncrementWithWrongParameter()
64
    {
65
        \PHPUnit_Framework_TestCase::setExpectedExceptionRegExp(
66
            'Robo\Exception\TaskException',
67
            '/Bad argument, only one of the following is allowed: major, minor, patch/'
68
        );
69
        $res = (new \Robo\Task\Development\SemVer())
0 ignored issues
show
$res is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
70
            ->increment('wrongParameter');
71
    }
72
73
    public function testThrowsExceptionWhenSemverFileNotWriteable()
74
    {
75
        \PHPUnit_Framework_TestCase::setExpectedExceptionRegExp(
76
            'Robo\Exception\TaskException',
77
            '/Failed to write semver file./'
78
        );
79
        (new \Robo\Task\Development\SemVer('/.semver'))
80
            ->increment('major')
81
            ->run();
82
    }
83
}
84