Skip to content

Commit 9afc80d

Browse files
committed
Added and updated tests.
1 parent 7f0a0cf commit 9afc80d

3 files changed

Lines changed: 143 additions & 7 deletions

File tree

tests/testsuites/HigherLower.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
use PHPUnit\Framework\TestCase;
4+
use Mistralys\VersionParser\VersionParser;
5+
6+
final class HigherLowerTest extends TestCase
7+
{
8+
public function test_higher()
9+
{
10+
$tests = array(
11+
array(
12+
'label' => '',
13+
'version' => '1.0-beta2',
14+
'compareWith' => '1.0-beta',
15+
'higher' => true
16+
),
17+
array(
18+
'label' => 'Regular version higher than release candidate',
19+
'version' => '1.0',
20+
'compareWith' => '1.0-rc',
21+
'higher' => true
22+
),
23+
array(
24+
'label' => 'Regular version higher than alpha',
25+
'version' => '1.0',
26+
'compareWith' => '1.0-alpha',
27+
'higher' => true
28+
),
29+
array(
30+
'label' => 'Release candidate higher than beta',
31+
'version' => '1.0-rc',
32+
'compareWith' => '1.0-beta11',
33+
'higher' => true
34+
),
35+
array(
36+
'label' => 'Beta 5 higher than beta 2',
37+
'version' => '1.0-beta5',
38+
'compareWith' => '1.0-beta2',
39+
'higher' => true
40+
)
41+
);
42+
43+
foreach($tests as $test)
44+
{
45+
$version = VersionParser::create($test['version']);
46+
$compare = VersionParser::create($test['compareWith']);
47+
48+
$label = $test['label'].PHP_EOL.
49+
'Version......: '.$version->getBuildNumberInt().' ('.$test['version'].')'.PHP_EOL.
50+
'Higher than..: '.$compare->getBuildNumberInt().' ('.$test['compareWith'].')';
51+
52+
$this->assertSame($test['higher'], $version->isHigherThan($compare), $label);
53+
}
54+
}
55+
}

tests/testsuites/Parse.php

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ public function test_parse()
2929
'int' => 1001001000000,
3030
'normalized' => '1.1.1'
3131
),
32+
array(
33+
'label' => 'Triple digit version',
34+
'version' => '1.12.348',
35+
'expected' => 1012348,
36+
'int' => 1012348000000,
37+
'normalized' => '1.12.348'
38+
),
3239
array(
3340
'label' => 'Triple digit version, higher numbers',
3441
'version' => '5.12.134',
@@ -39,30 +46,58 @@ public function test_parse()
3946
array(
4047
'label' => 'With beta tag',
4148
'version' => '1.0.0-beta',
42-
'expected' => 1000000.0001,
43-
'int' => 1000000000100,
49+
'expected' => 999999.000101,
50+
'int' => 999999000101,
51+
'normalized' => '1.0.0'
52+
),
53+
array(
54+
'label' => 'With beta tag, numbered 2',
55+
'version' => '1.0.0-beta2',
56+
'expected' => 999999.000201,
57+
'int' => 999999000201,
4458
'normalized' => '1.0.0'
4559
),
4660
array(
4761
'label' => 'With alpha tag',
4862
'version' => '1.0.0-alpha',
49-
'expected' => 1000000.000001,
50-
'int' => 1000000000001,
63+
'expected' => 999999.000002,
64+
'int' => 999999000002,
5165
'normalized' => '1.0.0'
5266
),
5367
array(
5468
'label' => 'With release candidate tag',
5569
'version' => '1.0.0-rc',
56-
'expected' => 1000000.01,
57-
'int' => 1000000010000,
70+
'expected' => 999999.010001,
71+
'int' => 999999010001,
72+
'normalized' => '1.0.0'
73+
),
74+
array(
75+
'label' => 'With branch name',
76+
'version' => '1.0.0-BranchName',
77+
'expected' => 1000000,
78+
'int' => 1000000000000,
79+
'normalized' => '1.0.0'
80+
),
81+
array(
82+
'label' => 'With branch name and release candidate tag',
83+
'version' => '1.0.0-BranchName-rc',
84+
'expected' => 999999.010001,
85+
'int' => 999999010001,
86+
'normalized' => '1.0.0'
87+
),
88+
array(
89+
'label' => 'With underscores as separators',
90+
'version' => '1.0.0_BranchName_rc',
91+
'expected' => 999999.010001,
92+
'int' => 999999010001,
5893
'normalized' => '1.0.0'
5994
)
6095
);
6196

6297
foreach($tests as $test)
6398
{
6499
$version = VersionParser::create($test['version']);
65-
100+
66101
$this->assertEquals($test['expected'], $version->getBuildNumber(), $test['label']);
67102
$this->assertEquals($test['int'], $version->getBuildNumberInt(), $test['label']);
68103
$this->assertEquals($test['normalized'], $version->getVersion(), $test['label']);

tests/testsuites/Sorting.php

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
use PHPUnit\Framework\TestCase;
4+
use Mistralys\VersionParser\VersionParser;
5+
6+
final class SortingTest extends TestCase
7+
{
8+
public function test_parse()
9+
{
10+
$versions = array(
11+
'1.1',
12+
'2',
13+
'1.5.9',
14+
'1.5.9-beta',
15+
'2.0.0-alpha'
16+
);
17+
18+
$expected = array(
19+
'1.1.0',
20+
'1.5.9-beta',
21+
'1.5.9',
22+
'2.0.0-alpha',
23+
'2.0.0',
24+
);
25+
26+
$parsed = array();
27+
28+
foreach ($versions as $string)
29+
{
30+
$parsed[] = VersionParser::create($string);
31+
}
32+
33+
usort($parsed, function (VersionParser $a, VersionParser $b)
34+
{
35+
return $a->getBuildNumberInt() - $b->getBuildNumberInt();
36+
});
37+
38+
$result = array();
39+
foreach($parsed as $version)
40+
{
41+
$result[] = $version->getTagVersion();
42+
}
43+
44+
$this->assertEquals($expected, $result);
45+
}
46+
}

0 commit comments

Comments
 (0)