#!/usr/bin/env php version = '1.0.0'; $version1->app_version = 'app-1.0.0'; $version2 = new stdClass(); $version2->version = '2.1.0'; $version2->app_version = 'app-2.1.0'; $version3 = new stdClass(); $version3->version = '1.5.0'; $version3->app_version = 'app-1.5.0'; $multipleVersions = array($version1, $version2, $version3); r($storeTest->pickHighestVersionTest($multipleVersions)) && p('version') && e('2.1.0'); // 步骤1:多个版本选择最高 // 测试步骤2:传入空版本列表 $emptyVersions = array(); r($storeTest->pickHighestVersionTest($emptyVersions)) && p() && e('0'); // 步骤2:空列表返回null // 测试步骤3:传入只有一个版本的版本列表 $singleVersion = array($version1); r($storeTest->pickHighestVersionTest($singleVersion)) && p('version') && e('1.0.0'); // 步骤3:单个版本返回该版本 // 测试步骤4:传入包含相同版本号的版本列表 $sameVersion1 = new stdClass(); $sameVersion1->version = '2.0.0'; $sameVersion1->app_version = 'app-2.0.0-a'; $sameVersion2 = new stdClass(); $sameVersion2->version = '2.0.0'; $sameVersion2->app_version = 'app-2.0.0-b'; $sameVersions = array($sameVersion1, $sameVersion2); r($storeTest->pickHighestVersionTest($sameVersions)) && p('version') && e('2.0.0'); // 步骤4:相同版本返回版本对象 // 测试步骤5:传入包含语义化版本号的版本列表 $semVer1 = new stdClass(); $semVer1->version = '1.0.0'; $semVer1->app_version = 'app-1.0.0'; $semVer2 = new stdClass(); $semVer2->version = '1.10.0'; $semVer2->app_version = 'app-1.10.0'; $semVer3 = new stdClass(); $semVer3->version = '1.2.5'; $semVer3->app_version = 'app-1.2.5'; $semanticVersions = array($semVer1, $semVer2, $semVer3); r($storeTest->pickHighestVersionTest($semanticVersions)) && p('version') && e('1.10.0'); // 步骤5:语义化版本正确比较