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语义化版本正确比较