20250612
* Добавлено перечисление стадий в информации о версии VersionInfoStage. * Добавлен новый класс, описывающий информацию о версии, VersionInfo (подробнее см. VersionInfo.md).
This commit is contained in:
		
							
								
								
									
										93
									
								
								tests/classes/VersionInfoTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								tests/classes/VersionInfoTest.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | ||||
| <?php | ||||
|  | ||||
| namespace goodboyalex\php_components_pack\tests\classes; | ||||
|  | ||||
| use goodboyalex\php_components_pack\classes\VersionInfo; | ||||
| use goodboyalex\php_components_pack\enums\VersionInfoStage; | ||||
| use PHPUnit\Framework\TestCase; | ||||
|  | ||||
| class VersionInfoTest extends TestCase | ||||
| { | ||||
|     public function testCompareWith () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $versionInfo1 = new VersionInfo(1, 2, 3, 4, VersionInfoStage::Beta, 1); | ||||
|         $versionInfo2 = new VersionInfo(1, 1, 3, 4, VersionInfoStage::Alpha, 2); | ||||
|  | ||||
|         $this->assertEquals(1, $versionInfo1->CompareWith($versionInfo2)); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     private function PrepareForTest (): void | ||||
|     { | ||||
|         require_once __DIR__ . '/../../sources/enums/VersionInfoStage.php'; | ||||
|         require_once __DIR__ . '/../../sources/classes/VersionInfo.php'; | ||||
|     } | ||||
|  | ||||
|     public function test__toString () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|         $versionInfo = new VersionInfo(1, 2, 3, 4, VersionInfoStage::Beta, 1); | ||||
|         $this->assertEquals('1.2.3.4 Beta 1', $versionInfo->__toString()); | ||||
|     } | ||||
|  | ||||
|     public function testToString () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|         $versionInfo = new VersionInfo(1, 2, 3, 4, VersionInfoStage::Beta, 1); | ||||
|  | ||||
|         $template = "Это #{Stage} #{StageNumber} версии #{Major}.#{Minor}.#{Release}.#{Build}"; | ||||
|  | ||||
|         $stageNames = [ | ||||
|             VersionInfoStage::PreAlpha->value => 'рано', | ||||
|             VersionInfoStage::Alpha->value => 'начало', | ||||
|             VersionInfoStage::Beta->value => 'середнячок', | ||||
|             VersionInfoStage::ReleaseCandidate->value => 'почти', | ||||
|             VersionInfoStage::Stable->value => 'это релиз, детка!' | ||||
|         ]; | ||||
|  | ||||
|         $this->assertEquals('Это середнячок 1 версии 1.2.3.4', $versionInfo->ToString($template, $stageNames)); | ||||
|     } | ||||
|  | ||||
|     public function testParse () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $stageNames = [ | ||||
|             VersionInfoStage::PreAlpha->value => 'pre', | ||||
|             VersionInfoStage::Alpha->value => 'alpha', | ||||
|             VersionInfoStage::Beta->value => 'beta', | ||||
|             VersionInfoStage::ReleaseCandidate->value => 'rc', | ||||
|             VersionInfoStage::Stable->value => 'stable' | ||||
|         ]; | ||||
|  | ||||
|         $version = VersionInfo::Parse('1.2.3.4 beta 1', $stageNames); | ||||
|  | ||||
|         $this->assertEquals(1, $version->Major); | ||||
|         $this->assertEquals(2, $version->Minor); | ||||
|         $this->assertEquals(3, $version->Release); | ||||
|         $this->assertEquals(4, $version->Build); | ||||
|         $this->assertEquals(VersionInfoStage::Beta, $version->Stage); | ||||
|         $this->assertEquals(1, $version->StageNumber); | ||||
|     } | ||||
|  | ||||
|     public function test__construct () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $version = new VersionInfo(1, 2, 3, 4, VersionInfoStage::Beta, 1); | ||||
|  | ||||
|         $this->assertEquals(2, $version->Minor); | ||||
|     } | ||||
|  | ||||
|     public function testCompare () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $versionInfo1 = new VersionInfo(1, 2, 3, 4, VersionInfoStage::Beta, 1); | ||||
|         $versionInfo2 = new VersionInfo(1, 1, 3, 4, VersionInfoStage::Alpha, 2); | ||||
|  | ||||
|         $this->assertEquals(1, VersionInfo::Compare($versionInfo1, $versionInfo2)); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user