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)); } }