EndpointTraitTest.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. namespace AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Traits;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Regions\LocationService;
  6. use AlibabaCloud\Client\Request\RpcRequest;
  7. use PHPUnit\Framework\TestCase;
  8. /**
  9. * Class EndpointTraitTest
  10. *
  11. * @package AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Traits
  12. */
  13. class EndpointTraitTest extends TestCase
  14. {
  15. /**
  16. * @throws ClientException
  17. */
  18. public function testFindProductDomain()
  19. {
  20. static::assertEquals(
  21. 'ecs-cn-hangzhou.aliyuncs.com',
  22. AlibabaCloud::resolveHost('Ecs', 'cn-hangzhou')
  23. );
  24. static::assertEquals(
  25. 'kms.me-east-1.aliyuncs.com',
  26. AlibabaCloud::resolveHost('kms', 'me-east-1')
  27. );
  28. }
  29. /**
  30. * Test for AddEndpoint
  31. *
  32. * @throws ClientException
  33. */
  34. public function testAddHost()
  35. {
  36. // Setup
  37. $regionId = 'cn-hangzhou';
  38. $product = 'TestProduct';
  39. $host = 'testproduct.aliyuncs.com';
  40. // Test
  41. AlibabaCloud::addHost($product, $host, $regionId);
  42. // Assert
  43. self::assertEquals($host, AlibabaCloud::resolveHost($product, $regionId));
  44. }
  45. /**
  46. * @throws ClientException
  47. */
  48. public function testResolveHostByStatic()
  49. {
  50. $host = 'host.com';
  51. AlibabaCloud::addHost('product', $host, 'cn-hangzhou');
  52. $expected = AlibabaCloud::resolveHostByStatic('product', 'cn-hangzhou');
  53. self::assertEquals($host, $expected);
  54. }
  55. /**
  56. * Test for AddEndpoint
  57. *
  58. * @throws ClientException
  59. * @expectedException \AlibabaCloud\Client\Exception\ClientException
  60. * @expectedExceptionMessage Product cannot be empty
  61. */
  62. public function testAddHostWithProductEmpty()
  63. {
  64. AlibabaCloud::addHost('', 'host', 'regionId');
  65. }
  66. /**
  67. * Test for AddEndpoint
  68. *
  69. * @throws ClientException
  70. * @expectedException \AlibabaCloud\Client\Exception\ClientException
  71. * @expectedExceptionMessage Product must be a string
  72. */
  73. public function testAddHostWithProductFormat()
  74. {
  75. AlibabaCloud::addHost(null, 'host', 'regionId');
  76. }
  77. /**
  78. * Test for AddEndpoint
  79. *
  80. * @throws ClientException
  81. * @expectedException \AlibabaCloud\Client\Exception\ClientException
  82. * @expectedExceptionMessage Host cannot be empty
  83. */
  84. public function testAddHostWithHostEmpty()
  85. {
  86. AlibabaCloud::addHost('product', '', 'regionId');
  87. }
  88. /**
  89. * Test for AddEndpoint
  90. *
  91. * @throws ClientException
  92. * @expectedException \AlibabaCloud\Client\Exception\ClientException
  93. * @expectedExceptionMessage Host must be a string
  94. */
  95. public function testAddHostWithHostFormat()
  96. {
  97. AlibabaCloud::addHost('product', null, 'regionId');
  98. }
  99. /**
  100. * Test for AddEndpoint
  101. *
  102. * @throws ClientException
  103. * @expectedException \AlibabaCloud\Client\Exception\ClientException
  104. * @expectedExceptionMessage Region ID must be a string
  105. */
  106. public function testAddHostWithRegionIdFormat()
  107. {
  108. AlibabaCloud::addHost('product', 'host', null);
  109. }
  110. /**
  111. * Test for AddEndpoint
  112. *
  113. * @throws ClientException
  114. * @expectedException \AlibabaCloud\Client\Exception\ClientException
  115. * @expectedExceptionMessage Region ID cannot be empty
  116. */
  117. public function testAddHostWithRegionIdEmpty()
  118. {
  119. AlibabaCloud::addHost('product', 'host', '');
  120. }
  121. /**
  122. * @expectedException \AlibabaCloud\Client\Exception\ServerException
  123. * @expectedExceptionMessageRegExp /Please check the parameters RequestId:/
  124. * @throws ClientException
  125. */
  126. public function testLocationServiceResolveHostWithException()
  127. {
  128. // Setup
  129. $accessKeyId = \getenv('ACCESS_KEY_ID');
  130. $accessKeySecret = \getenv('ACCESS_KEY_SECRET');
  131. AlibabaCloud::mockResponse(
  132. 400,
  133. [],
  134. [
  135. 'Message' => 'Please check the parameters',
  136. ]
  137. );
  138. AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
  139. ->regionId('cn-hangzhou')
  140. ->asDefaultClient();
  141. // Test
  142. $request = new RpcRequest();
  143. $request->connectTimeout(25)->timeout(30);
  144. $request->product = 'Dysmsapi';
  145. $request->serviceCode = 'dysmsapi';
  146. // Assert
  147. LocationService::resolveHost($request);
  148. }
  149. /**
  150. * @throws ClientException
  151. */
  152. public function testAddGlobalHost()
  153. {
  154. // Setup
  155. $product = 'a';
  156. $host = 'a.com';
  157. // Test
  158. AlibabaCloud::addHost($product, $host);
  159. // Assert
  160. self::assertEquals($host, AlibabaCloud::resolveHost($product));
  161. }
  162. /**
  163. * @throws ClientException
  164. */
  165. public function testGlobal()
  166. {
  167. // Assert
  168. self::assertEquals('', AlibabaCloud::resolveHost('dysmsapi'));
  169. self::assertEquals('dysmsapi.aliyuncs.com', AlibabaCloud::resolveHost('dysmsapi', 'cn-hangzhou'));
  170. }
  171. public function testIsGlobalProduct()
  172. {
  173. self::assertTrue(AlibabaCloud::isGlobalProduct('ccc'));
  174. self::assertFalse(AlibabaCloud::isGlobalProduct('no'));
  175. self::assertTrue(AlibabaCloud::isGlobalProduct('Ram'));
  176. self::assertTrue(AlibabaCloud::isGlobalProduct('ram'));
  177. self::assertFalse(AlibabaCloud::isGlobalProduct('tdsr'));
  178. self::assertFalse(AlibabaCloud::isGlobalProduct(''));
  179. self::assertFalse(AlibabaCloud::isGlobalProduct(null));
  180. }
  181. /**
  182. * Test for Null
  183. *
  184. * @throws ClientException
  185. */
  186. public function testNull()
  187. {
  188. // Setup
  189. $regionId = 'cn-hangzhou';
  190. $product = 'null';
  191. // Test
  192. self::assertEquals('', AlibabaCloud::resolveHost($product, $regionId));
  193. }
  194. }