ILIAS  release_8 Revision v8.24
VersionTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use ILIAS\Data;
22use PHPUnit\Framework\TestCase;
23
24class VersionTest extends TestCase
25{
26 protected function setUp(): void
27 {
28 $this->f = new Data\Factory();
29 }
30
31 public function testSmoke(): void
32 {
33 $v = $this->f->version("0.1.0");
34
35 $this->assertEquals("0.1.0", (string) $v);
36 }
37
38 public function testMajorOnly(): void
39 {
40 $v = $this->f->version("1");
41
42 $this->assertEquals("1.0.0", (string) $v);
43 }
44
45 public function testNoPatchVersion(): void
46 {
47 $v = $this->f->version("1.2");
48
49 $this->assertEquals("1.2.0", (string) $v);
50 }
51
52 public function testSubVersions(): void
53 {
54 $v = $this->f->version("1.2.3");
55
56 $this->assertEquals(1, $v->getMajor());
57 $this->assertEquals(2, $v->getMinor());
58 $this->assertEquals(3, $v->getPatch());
59 }
60
64 public function testGreaterThan(Data\Version $l, Data\Version $r): void
65 {
66 $this->assertTrue($l->isGreaterThan($r));
67 $this->assertFalse($l->isSmallerThan($r));
68 $this->assertTrue($r->isSmallerThan($l));
69 $this->assertFalse($r->isGreaterThan($l));
70 $this->assertTrue($l->isGreaterThanOrEquals($r));
71 $this->assertFalse($l->isSmallerThanOrEquals($r));
72 $this->assertTrue($r->isSmallerThanOrEquals($l));
73 $this->assertFalse($r->isGreaterThanOrEquals($l));
74 $this->assertFalse($l->equals($r));
75 $this->assertFalse($r->equals($l));
76 }
77
78 public function greaterThanProvider(): array
79 {
80 $f = new Data\Factory();
81 return [
82 'Patch version is greater (2>1), major and minor versions are equal (0)' => [$f->version("0.0.2"), $f->version("0.0.1")],
83 'Minor version is greater (2>1), major and patch versions are equal (0)' => [$f->version("0.2.0"), $f->version("0.1.0")],
84 'Major version is greater (2>1), minor and patch versions are equal (0)' => [$f->version("2.0.0"), $f->version("1.0.0")],
85 'Patch version is greater (3>2), major (1) and minor (2) versions are equal' => [$f->version("1.2.3"), $f->version("1.2.2")],
86 'Minor version is greater (2>1), major (1) and patch (3) versions are equal' => [$f->version("1.2.3"), $f->version("1.1.3")],
87 'Major version is greater (1>0), minor (2) and patch (3) versions are equal' => [$f->version("1.2.3"), $f->version("0.2.3")],
88 'Minor version is greater (5>1), patch is smaller (0<1), minor version is equal (1)' => [$f->version("1.5.0"), $f->version("1.1.1")],
89 ];
90 }
91
95 public function testEquals(Data\Version $l, Data\Version $r): void
96 {
97 $this->assertFalse($l->isGreaterThan($r));
98 $this->assertFalse($r->isSmallerThan($l));
99 $this->assertTrue($l->isGreaterThanOrEquals($r));
100 $this->assertTrue($l->isSmallerThanOrEquals($r));
101 $this->assertTrue($r->isSmallerThanOrEquals($l));
102 $this->assertTrue($r->isGreaterThanOrEquals($l));
103 $this->assertTrue($l->equals($r));
104 $this->assertTrue($r->equals($l));
105 }
106
107 public function equalsProvider(): array
108 {
109 $f = new Data\Factory();
110 return [
111 [$f->version("0.0.1"), $f->version("0.0.1")],
112 [$f->version("0.1.0"), $f->version("0.1.0")],
113 [$f->version("1.0.0"), $f->version("1.0.0")],
114 [$f->version("1.0.3"), $f->version("1.0.3")],
115 [$f->version("1.2.0"), $f->version("1.2.0")],
116 [$f->version("1.2.3"), $f->version("1.2.3")]
117 ];
118 }
119}
Builds data types.
Definition: Factory.php:21
A version number that consists of three numbers (major, minor, patch).
Definition: Version.php:27
greaterThanProvider()
Definition: VersionTest.php:78
testNoPatchVersion()
Definition: VersionTest.php:45
testGreaterThan(Data\Version $l, Data\Version $r)
@dataProvider greaterThanProvider
Definition: VersionTest.php:64
testEquals(Data\Version $l, Data\Version $r)
@dataProvider equalsProvider
Definition: VersionTest.php:95