ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 Data\Factory $f;
27
28 protected function setUp(): void
29 {
30 $this->f = new Data\Factory();
31 }
32
33 public function testSmoke(): void
34 {
35 $v = $this->f->version("0.1.0");
36
37 $this->assertEquals("0.1.0", (string) $v);
38 }
39
40 public function testMajorOnly(): void
41 {
42 $v = $this->f->version("1");
43
44 $this->assertEquals("1.0.0", (string) $v);
45 }
46
47 public function testNoPatchVersion(): void
48 {
49 $v = $this->f->version("1.2");
50
51 $this->assertEquals("1.2.0", (string) $v);
52 }
53
54 public function testSubVersions(): void
55 {
56 $v = $this->f->version("1.2.3");
57
58 $this->assertEquals(1, $v->getMajor());
59 $this->assertEquals(2, $v->getMinor());
60 $this->assertEquals(3, $v->getPatch());
61 }
62
63 #[\PHPUnit\Framework\Attributes\DataProvider('greaterThanProvider')]
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 static 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
92 #[\PHPUnit\Framework\Attributes\DataProvider('equalsProvider')]
93 public function testEquals(Data\Version $l, Data\Version $r): void
94 {
95 $this->assertFalse($l->isGreaterThan($r));
96 $this->assertFalse($r->isSmallerThan($l));
97 $this->assertTrue($l->isGreaterThanOrEquals($r));
98 $this->assertTrue($l->isSmallerThanOrEquals($r));
99 $this->assertTrue($r->isSmallerThanOrEquals($l));
100 $this->assertTrue($r->isGreaterThanOrEquals($l));
101 $this->assertTrue($l->equals($r));
102 $this->assertTrue($r->equals($l));
103 }
104
105 public static function equalsProvider(): array
106 {
107 $f = new Data\Factory();
108 return [
109 [$f->version("0.0.1"), $f->version("0.0.1")],
110 [$f->version("0.1.0"), $f->version("0.1.0")],
111 [$f->version("1.0.0"), $f->version("1.0.0")],
112 [$f->version("1.0.3"), $f->version("1.0.3")],
113 [$f->version("1.2.0"), $f->version("1.2.0")],
114 [$f->version("1.2.3"), $f->version("1.2.3")]
115 ];
116 }
117}
A version number that consists of three numbers (major, minor, patch).
Definition: Version.php:27
static equalsProvider()
Data Factory $f
Definition: VersionTest.php:26
testNoPatchVersion()
Definition: VersionTest.php:47
static greaterThanProvider()
Definition: VersionTest.php:78
testGreaterThan(Data\Version $l, Data\Version $r)
Definition: VersionTest.php:64
testEquals(Data\Version $l, Data\Version $r)
Definition: VersionTest.php:93