znt/module/store/test/model/pickhighestversion.php

75 lines
2.4 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 storeModel::pickHighestVersion();
timeout=0
cid=18457
- 步骤1:多个版本选择最高属性version @2.1.0
- 步骤2:空列表返回null @0
- 步骤3:单个版本返回该版本属性version @1.0.0
- 步骤4:相同版本返回版本对象属性version @2.0.0
- 步骤5:语义化版本正确比较属性version @1.10.0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
su('admin');
$storeTest = new storeModelTest();
// 测试步骤1:传入包含多个版本的版本列表
$version1 = new stdClass();
$version1->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:语义化版本正确比较