ILIAS  trunk Revision v11.0_alpha-2658-ge2404539063
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 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 }
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
Data Factory $f
Definition: VersionTest.php:26
testNoPatchVersion()
Definition: VersionTest.php:47
A version number that consists of three numbers (major, minor, patch).
Definition: Version.php:26
static equalsProvider()
$r