ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
VersionTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 use ILIAS\Data;
23 
24 class 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 }
greaterThanProvider()
Definition: VersionTest.php:78
testGreaterThan(Data\Version $l, Data\Version $r)
greaterThanProvider
Definition: VersionTest.php:64
testEquals(Data\Version $l, Data\Version $r)
equalsProvider
Definition: VersionTest.php:95
testNoPatchVersion()
Definition: VersionTest.php:45
A version number that consists of three numbers (major, minor, patch).
Definition: Version.php:26