代码同步
This commit is contained in:
29
Server/vendor/alibabacloud/tea-utils/phpunit.xml
vendored
29
Server/vendor/alibabacloud/tea-utils/phpunit.xml
vendored
@@ -1,15 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="tests/bootstrap.php" colors="true"
|
||||
convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true"
|
||||
executionOrder="depends,defects" processIsolation="false" stopOnFailure="false">
|
||||
<logging>
|
||||
<log type="coverage-html" target="cache/coverage" lowUpperBound="35" highLowerBound="70"/>
|
||||
<log type="coverage-clover" target="cache/coverage.clover"/>
|
||||
</logging>
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="default">
|
||||
<directory suffix="Test.php">tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="tests/bootstrap.php" colors="true" executionOrder="depends,defects" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.0/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
|
||||
<coverage>
|
||||
<include>
|
||||
<directory suffix=".php">src</directory>
|
||||
</include>
|
||||
<report>
|
||||
<clover outputFile="cache/coverage.clover"/>
|
||||
<html outputDirectory="cache/coverage" lowUpperBound="35" highLowerBound="70"/>
|
||||
</report>
|
||||
</coverage>
|
||||
<logging/>
|
||||
<testsuites>
|
||||
<testsuite name="default">
|
||||
<directory suffix="Test.php">tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
||||
|
||||
@@ -19,6 +19,9 @@ class Utils
|
||||
*/
|
||||
public static function toBytes($string)
|
||||
{
|
||||
if (self::is_bytes($string)) {
|
||||
return $string;
|
||||
}
|
||||
$bytes = [];
|
||||
for ($i = 0; $i < \strlen($string); ++$i) {
|
||||
$bytes[] = \ord($string[$i]);
|
||||
@@ -36,6 +39,9 @@ class Utils
|
||||
*/
|
||||
public static function toString($bytes)
|
||||
{
|
||||
if (\is_string($bytes)) {
|
||||
return $bytes;
|
||||
}
|
||||
$str = '';
|
||||
foreach ($bytes as $ch) {
|
||||
$str .= \chr($ch);
|
||||
@@ -185,7 +191,7 @@ class Utils
|
||||
$object = $object->toMap();
|
||||
}
|
||||
|
||||
return json_encode($object);
|
||||
return json_encode($object, JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -380,7 +386,7 @@ class Utils
|
||||
*
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return bool the number value
|
||||
* @return int the number value
|
||||
*/
|
||||
public static function assertAsNumber($value)
|
||||
{
|
||||
@@ -391,6 +397,19 @@ class Utils
|
||||
throw new \InvalidArgumentException('It is not a number value.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert a value, if it is a integer, return it, otherwise throws
|
||||
* @param mixed $value
|
||||
* @return int the integer value
|
||||
*/
|
||||
public static function assertAsInteger($value){
|
||||
if (\is_int($value)) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException('It is not a int value.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert a value, if it is a map, return it, otherwise throws.
|
||||
*
|
||||
|
||||
38
Server/vendor/alibabacloud/tea-utils/src/Utils/ExtendsParameters.php
vendored
Normal file
38
Server/vendor/alibabacloud/tea-utils/src/Utils/ExtendsParameters.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
// This file is auto-generated, don't edit it. Thanks.
|
||||
namespace AlibabaCloud\Tea\Utils\Utils;
|
||||
|
||||
use AlibabaCloud\Tea\Model;
|
||||
|
||||
class ExtendsParameters extends Model {
|
||||
public function validate() {}
|
||||
public function toMap() {
|
||||
$res = [];
|
||||
if (null !== $this->headers) {
|
||||
$res['headers'] = $this->headers;
|
||||
}
|
||||
if (null !== $this->queries) {
|
||||
$res['queries'] = $this->queries;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* @param array $map
|
||||
* @return ExtendsParameters
|
||||
*/
|
||||
public static function fromMap($map = []) {
|
||||
$model = new self();
|
||||
if(isset($map['headers'])){
|
||||
$model->headers = $map['headers'];
|
||||
}
|
||||
if(isset($map['queries'])){
|
||||
$model->queries = $map['queries'];
|
||||
}
|
||||
return $model;
|
||||
}
|
||||
public $headers;
|
||||
|
||||
public $queries;
|
||||
|
||||
}
|
||||
@@ -1,41 +1,273 @@
|
||||
<?php
|
||||
|
||||
// This file is auto-generated, don't edit it. Thanks.
|
||||
|
||||
namespace AlibabaCloud\Tea\Utils\Utils;
|
||||
|
||||
use AlibabaCloud\Tea\Model;
|
||||
|
||||
class RuntimeOptions extends Model
|
||||
{
|
||||
/**
|
||||
* The common runtime options model
|
||||
*/
|
||||
class RuntimeOptions extends Model {
|
||||
protected $_name = [
|
||||
'autoretry' => 'autoretry',
|
||||
'ignoreSSL' => 'ignoreSSL',
|
||||
'key' => 'key',
|
||||
'cert' => 'cert',
|
||||
'ca' => 'ca',
|
||||
'maxAttempts' => 'max_attempts',
|
||||
'backoffPolicy' => 'backoff_policy',
|
||||
'backoffPeriod' => 'backoff_period',
|
||||
'readTimeout' => 'readTimeout',
|
||||
'connectTimeout' => 'connectTimeout',
|
||||
'httpProxy' => 'httpProxy',
|
||||
'httpsProxy' => 'httpsProxy',
|
||||
'noProxy' => 'noProxy',
|
||||
'maxIdleConns' => 'maxIdleConns',
|
||||
'localAddr' => 'localAddr',
|
||||
'socks5Proxy' => 'socks5Proxy',
|
||||
'socks5NetWork' => 'socks5NetWork',
|
||||
'keepAlive' => 'keepAlive',
|
||||
];
|
||||
public function validate() {}
|
||||
public function toMap() {
|
||||
$res = [];
|
||||
if (null !== $this->autoretry) {
|
||||
$res['autoretry'] = $this->autoretry;
|
||||
}
|
||||
if (null !== $this->ignoreSSL) {
|
||||
$res['ignoreSSL'] = $this->ignoreSSL;
|
||||
}
|
||||
if (null !== $this->key) {
|
||||
$res['key'] = $this->key;
|
||||
}
|
||||
if (null !== $this->cert) {
|
||||
$res['cert'] = $this->cert;
|
||||
}
|
||||
if (null !== $this->ca) {
|
||||
$res['ca'] = $this->ca;
|
||||
}
|
||||
if (null !== $this->maxAttempts) {
|
||||
$res['max_attempts'] = $this->maxAttempts;
|
||||
}
|
||||
if (null !== $this->backoffPolicy) {
|
||||
$res['backoff_policy'] = $this->backoffPolicy;
|
||||
}
|
||||
if (null !== $this->backoffPeriod) {
|
||||
$res['backoff_period'] = $this->backoffPeriod;
|
||||
}
|
||||
if (null !== $this->readTimeout) {
|
||||
$res['readTimeout'] = $this->readTimeout;
|
||||
}
|
||||
if (null !== $this->connectTimeout) {
|
||||
$res['connectTimeout'] = $this->connectTimeout;
|
||||
}
|
||||
if (null !== $this->httpProxy) {
|
||||
$res['httpProxy'] = $this->httpProxy;
|
||||
}
|
||||
if (null !== $this->httpsProxy) {
|
||||
$res['httpsProxy'] = $this->httpsProxy;
|
||||
}
|
||||
if (null !== $this->noProxy) {
|
||||
$res['noProxy'] = $this->noProxy;
|
||||
}
|
||||
if (null !== $this->maxIdleConns) {
|
||||
$res['maxIdleConns'] = $this->maxIdleConns;
|
||||
}
|
||||
if (null !== $this->localAddr) {
|
||||
$res['localAddr'] = $this->localAddr;
|
||||
}
|
||||
if (null !== $this->socks5Proxy) {
|
||||
$res['socks5Proxy'] = $this->socks5Proxy;
|
||||
}
|
||||
if (null !== $this->socks5NetWork) {
|
||||
$res['socks5NetWork'] = $this->socks5NetWork;
|
||||
}
|
||||
if (null !== $this->keepAlive) {
|
||||
$res['keepAlive'] = $this->keepAlive;
|
||||
}
|
||||
if (null !== $this->extendsParameters) {
|
||||
$res['extendsParameters'] = null !== $this->extendsParameters ? $this->extendsParameters->toMap() : null;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* @param array $map
|
||||
* @return RuntimeOptions
|
||||
*/
|
||||
public static function fromMap($map = []) {
|
||||
$model = new self();
|
||||
if(isset($map['autoretry'])){
|
||||
$model->autoretry = $map['autoretry'];
|
||||
}
|
||||
if(isset($map['ignoreSSL'])){
|
||||
$model->ignoreSSL = $map['ignoreSSL'];
|
||||
}
|
||||
if(isset($map['key'])){
|
||||
$model->key = $map['key'];
|
||||
}
|
||||
if(isset($map['cert'])){
|
||||
$model->cert = $map['cert'];
|
||||
}
|
||||
if(isset($map['ca'])){
|
||||
$model->ca = $map['ca'];
|
||||
}
|
||||
if(isset($map['max_attempts'])){
|
||||
$model->maxAttempts = $map['max_attempts'];
|
||||
}
|
||||
if(isset($map['backoff_policy'])){
|
||||
$model->backoffPolicy = $map['backoff_policy'];
|
||||
}
|
||||
if(isset($map['backoff_period'])){
|
||||
$model->backoffPeriod = $map['backoff_period'];
|
||||
}
|
||||
if(isset($map['readTimeout'])){
|
||||
$model->readTimeout = $map['readTimeout'];
|
||||
}
|
||||
if(isset($map['connectTimeout'])){
|
||||
$model->connectTimeout = $map['connectTimeout'];
|
||||
}
|
||||
if(isset($map['httpProxy'])){
|
||||
$model->httpProxy = $map['httpProxy'];
|
||||
}
|
||||
if(isset($map['httpsProxy'])){
|
||||
$model->httpsProxy = $map['httpsProxy'];
|
||||
}
|
||||
if(isset($map['noProxy'])){
|
||||
$model->noProxy = $map['noProxy'];
|
||||
}
|
||||
if(isset($map['maxIdleConns'])){
|
||||
$model->maxIdleConns = $map['maxIdleConns'];
|
||||
}
|
||||
if(isset($map['localAddr'])){
|
||||
$model->localAddr = $map['localAddr'];
|
||||
}
|
||||
if(isset($map['socks5Proxy'])){
|
||||
$model->socks5Proxy = $map['socks5Proxy'];
|
||||
}
|
||||
if(isset($map['socks5NetWork'])){
|
||||
$model->socks5NetWork = $map['socks5NetWork'];
|
||||
}
|
||||
if(isset($map['keepAlive'])){
|
||||
$model->keepAlive = $map['keepAlive'];
|
||||
}
|
||||
if(isset($map['extendsParameters'])){
|
||||
$model->extendsParameters = ExtendsParameters::fromMap($map['extendsParameters']);
|
||||
}
|
||||
return $model;
|
||||
}
|
||||
/**
|
||||
* @description whether to try again
|
||||
* @var bool
|
||||
*/
|
||||
public $autoretry;
|
||||
|
||||
/**
|
||||
* @description ignore SSL validation
|
||||
* @var bool
|
||||
*/
|
||||
public $ignoreSSL;
|
||||
|
||||
/**
|
||||
* @description privite key for client certificate
|
||||
* @var string
|
||||
*/
|
||||
public $key;
|
||||
|
||||
/**
|
||||
* @description client certificate
|
||||
* @var string
|
||||
*/
|
||||
public $cert;
|
||||
|
||||
/**
|
||||
* @description server certificate
|
||||
* @var string
|
||||
*/
|
||||
public $ca;
|
||||
|
||||
/**
|
||||
* @description maximum number of retries
|
||||
* @var int
|
||||
*/
|
||||
public $maxAttempts;
|
||||
|
||||
/**
|
||||
* @description backoff policy
|
||||
* @var string
|
||||
*/
|
||||
public $backoffPolicy;
|
||||
|
||||
/**
|
||||
* @description backoff period
|
||||
* @var int
|
||||
*/
|
||||
public $backoffPeriod;
|
||||
|
||||
/**
|
||||
* @description read timeout
|
||||
* @var int
|
||||
*/
|
||||
public $readTimeout;
|
||||
|
||||
/**
|
||||
* @description connect timeout
|
||||
* @var int
|
||||
*/
|
||||
public $connectTimeout;
|
||||
|
||||
/**
|
||||
* @description http proxy url
|
||||
* @var string
|
||||
*/
|
||||
public $httpProxy;
|
||||
|
||||
/**
|
||||
* @description https Proxy url
|
||||
* @var string
|
||||
*/
|
||||
public $httpsProxy;
|
||||
|
||||
/**
|
||||
* @description agent blacklist
|
||||
* @var string
|
||||
*/
|
||||
public $noProxy;
|
||||
|
||||
/**
|
||||
* @description maximum number of connections
|
||||
* @var int
|
||||
*/
|
||||
public $maxIdleConns;
|
||||
|
||||
/**
|
||||
* @description local addr
|
||||
* @var string
|
||||
*/
|
||||
public $localAddr;
|
||||
|
||||
/**
|
||||
* @description SOCKS5 proxy
|
||||
* @var string
|
||||
*/
|
||||
public $socks5Proxy;
|
||||
|
||||
/**
|
||||
* @description SOCKS5 netWork
|
||||
* @var string
|
||||
*/
|
||||
public $socks5NetWork;
|
||||
|
||||
/**
|
||||
* @description whether to enable keep-alive
|
||||
* @var bool
|
||||
*/
|
||||
public $keepAlive;
|
||||
protected $_name = [];
|
||||
|
||||
/**
|
||||
* @description Extends Parameters
|
||||
* @var ExtendsParameters
|
||||
*/
|
||||
public $extendsParameters;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace AlibabaCloud\Tea\Utils\Tests;
|
||||
|
||||
use AlibabaCloud\Tea\Model;
|
||||
use AlibabaCloud\Tea\Utils\Utils;
|
||||
use AlibabaCloud\Tea\Utils\Utils\ExtendsParameters;
|
||||
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
|
||||
use GuzzleHttp\Psr7\Stream;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Psr\Http\Message\StreamInterface;
|
||||
@@ -24,6 +26,11 @@ final class UtilsTest extends TestCase
|
||||
$this->assertEquals([
|
||||
115, 116, 114, 105, 110, 103,
|
||||
], Utils::toBytes('string'));
|
||||
$this->assertEquals([
|
||||
115, 116, 114, 105, 110, 103,
|
||||
], Utils::toBytes([
|
||||
115, 116, 114, 105, 110, 103,
|
||||
]));
|
||||
}
|
||||
|
||||
public function testToString()
|
||||
@@ -31,6 +38,7 @@ final class UtilsTest extends TestCase
|
||||
$this->assertEquals('string', Utils::toString([
|
||||
115, 116, 114, 105, 110, 103,
|
||||
]));
|
||||
$this->assertEquals('string', Utils::toString('string'));
|
||||
}
|
||||
|
||||
public function testParseJSON()
|
||||
@@ -108,12 +116,17 @@ final class UtilsTest extends TestCase
|
||||
$this->assertJson(Utils::toJSONString($object));
|
||||
$this->assertEquals('[]', Utils::toJSONString([]));
|
||||
$this->assertEquals('["foo"]', Utils::toJSONString(['foo']));
|
||||
$this->assertEquals('{"str":"test","number":1,"bool":false,"null":null}', Utils::toJSONString([
|
||||
'str' => 'test',
|
||||
'number' => 1,
|
||||
'bool' => FALSE,
|
||||
'null' => null,
|
||||
]));
|
||||
$this->assertEquals(
|
||||
'{"str":"test","number":1,"bool":false,"null":null,"chinese":"中文","http":"https://aliyun.com:8080/zh/中文.html"}',
|
||||
Utils::toJSONString([
|
||||
'str' => 'test',
|
||||
'number' => 1,
|
||||
'bool' => FALSE,
|
||||
'null' => null,
|
||||
'chinese' => '中文',
|
||||
'http' => 'https://aliyun.com:8080/zh/中文.html',
|
||||
])
|
||||
);
|
||||
$this->assertEquals('1', Utils::toJSONString(1));
|
||||
$this->assertEquals('true', Utils::toJSONString(TRUE));
|
||||
$this->assertEquals('null', Utils::toJSONString(null));
|
||||
@@ -250,6 +263,21 @@ final class UtilsTest extends TestCase
|
||||
}
|
||||
}
|
||||
|
||||
public function testAssertAsInteger()
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('It is not a int value.');
|
||||
Utils::assertAsInteger('is not int');
|
||||
|
||||
try {
|
||||
$map = 123;
|
||||
$this->assertEquals($map, Utils::assertAsInteger($map));
|
||||
} catch (\Exception $e) {
|
||||
// should not be here
|
||||
$this->assertTrue(false);
|
||||
}
|
||||
}
|
||||
|
||||
public function testAssertAsMap()
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
@@ -371,6 +399,48 @@ final class UtilsTest extends TestCase
|
||||
Utils::assertAsReadable(0);
|
||||
}
|
||||
|
||||
public function testRuntimeOptions()
|
||||
{
|
||||
$opts = new RuntimeOptions([
|
||||
"autoretry" => false,
|
||||
"ignoreSSL" => false,
|
||||
"key" => "key",
|
||||
"cert" => "cert",
|
||||
"ca" => "ca",
|
||||
"maxAttempts" => 3,
|
||||
"backoffPolicy" => "backoffPolicy",
|
||||
"backoffPeriod" => 10,
|
||||
"readTimeout" => 3000,
|
||||
"connectTimeout" => 3000,
|
||||
"httpProxy" => "httpProxy",
|
||||
"httpsProxy" => "httpsProxy",
|
||||
"noProxy" => "noProxy",
|
||||
"maxIdleConns" => 300,
|
||||
"keepAlive" => true,
|
||||
"extendsParameters" => new ExtendsParameters([
|
||||
"headers" => ['key' => 'value'],
|
||||
"queries" => ['key' => 'value'],
|
||||
]),
|
||||
]);
|
||||
$this->assertEquals(false, $opts->autoretry);
|
||||
$this->assertEquals(false, $opts->ignoreSSL);
|
||||
$this->assertEquals("key", $opts->key);
|
||||
$this->assertEquals("cert", $opts->cert);
|
||||
$this->assertEquals("ca", $opts->ca);
|
||||
$this->assertEquals(3, $opts->maxAttempts);
|
||||
$this->assertEquals("backoffPolicy", $opts->backoffPolicy);
|
||||
$this->assertEquals(10, $opts->backoffPeriod);
|
||||
$this->assertEquals(3000, $opts->readTimeout);
|
||||
$this->assertEquals(3000, $opts->connectTimeout);
|
||||
$this->assertEquals("httpProxy", $opts->httpProxy);
|
||||
$this->assertEquals("httpsProxy", $opts->httpsProxy);
|
||||
$this->assertEquals("noProxy", $opts->noProxy);
|
||||
$this->assertEquals(300, $opts->maxIdleConns);
|
||||
$this->assertEquals(true, $opts->keepAlive);
|
||||
$this->assertEquals('value', $opts->extendsParameters->headers['key']);
|
||||
$this->assertEquals('value', $opts->extendsParameters->queries['key']);
|
||||
}
|
||||
|
||||
private function convert($body, &$content)
|
||||
{
|
||||
$class = new \ReflectionClass($body);
|
||||
|
||||
Reference in New Issue
Block a user