PhpVersionTest.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php declare(strict_types=1);
  2. namespace PhpParser;
  3. class PhpVersionTest extends \PHPUnit\Framework\TestCase {
  4. public function testConstruction(): void {
  5. $version = PhpVersion::fromComponents(8, 2);
  6. $this->assertSame(80200, $version->id);
  7. $version = PhpVersion::fromString('8.2');
  8. $this->assertSame(80200, $version->id);
  9. $version = PhpVersion::fromString('8.2.14');
  10. $this->assertSame(80200, $version->id);
  11. $version = PhpVersion::fromString('8.2.14rc1');
  12. $this->assertSame(80200, $version->id);
  13. }
  14. public function testInvalidVersion(): void {
  15. $this->expectException(\LogicException::class);
  16. $this->expectExceptionMessage('Invalid PHP version "8"');
  17. PhpVersion::fromString('8');
  18. }
  19. public function testEquals(): void {
  20. $php74 = PhpVersion::fromComponents(7, 4);
  21. $php81 = PhpVersion::fromComponents(8, 1);
  22. $php82 = PhpVersion::fromComponents(8, 2);
  23. $this->assertTrue($php81->equals($php81));
  24. $this->assertFalse($php81->equals($php82));
  25. $this->assertTrue($php81->older($php82));
  26. $this->assertFalse($php81->older($php81));
  27. $this->assertFalse($php81->older($php74));
  28. $this->assertFalse($php81->newerOrEqual($php82));
  29. $this->assertTrue($php81->newerOrEqual($php81));
  30. $this->assertTrue($php81->newerOrEqual($php74));
  31. }
  32. }