ResultTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. namespace AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Result;
  3. use GuzzleHttp\Psr7\Response;
  4. use PHPUnit\Framework\TestCase;
  5. use AlibabaCloud\Client\Result\Result;
  6. use AlibabaCloud\Client\Request\Request;
  7. use AlibabaCloud\Client\Request\RpcRequest;
  8. use AlibabaCloud\Client\Exception\ClientException;
  9. /**
  10. * Class ResultTest
  11. *
  12. * @package AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Result
  13. */
  14. class ResultTest extends TestCase
  15. {
  16. /**
  17. * @return array
  18. * @throws ClientException
  19. */
  20. public function requests()
  21. {
  22. return [
  23. [
  24. [
  25. 'key' => [
  26. 'name' => 'value',
  27. ],
  28. ],
  29. (new RpcRequest())->format('json'),
  30. ],
  31. [
  32. [
  33. 'key' => [
  34. 'name' => 'value',
  35. ],
  36. ],
  37. (new RpcRequest())->format('xml'),
  38. ],
  39. [
  40. [
  41. 'key' => [
  42. 'name' => 'value',
  43. ],
  44. ],
  45. (new RpcRequest())->format('RAW'),
  46. ],
  47. [
  48. [
  49. 'key' => [
  50. 'name' => 'value',
  51. ],
  52. ],
  53. (new RpcRequest())->format('unknown'),
  54. ],
  55. ];
  56. }
  57. /**
  58. * @dataProvider requests
  59. *
  60. * @param array $data
  61. * @param Request $request
  62. */
  63. public function testGetRequest(array $data, Request $request)
  64. {
  65. // Setup
  66. $response = new Response(200, [], \json_encode($data));
  67. $result = new Result($response, $request);
  68. // Assert
  69. self::assertInstanceOf(Request::class, $result->getRequest());
  70. }
  71. public function testGetResponse()
  72. {
  73. // Setup
  74. $result = new Result(new Response());
  75. // Assert
  76. self::assertInstanceOf(Response::class, $result);
  77. self::assertInstanceOf(Result::class, $result);
  78. }
  79. /**
  80. * @dataProvider responses
  81. *
  82. * @param Response $response
  83. * @param bool $bool
  84. */
  85. public function testIsSuccess(Response $response, $bool)
  86. {
  87. // Setup
  88. $result = new Result($response);
  89. // Assert
  90. self::assertEquals($bool, $result->isSuccess());
  91. }
  92. /**
  93. * @return array
  94. */
  95. public function responses()
  96. {
  97. return [
  98. [
  99. new Response(),
  100. true,
  101. ],
  102. [
  103. new Response(301),
  104. false,
  105. ],
  106. [
  107. new Response(199),
  108. false,
  109. ],
  110. ];
  111. }
  112. public function testToString()
  113. {
  114. // Setup
  115. $result = new Result(new Response());
  116. // Assert
  117. self::assertEquals('', (string)$result);
  118. }
  119. /**
  120. * @dataProvider issetData
  121. *
  122. * @param array $data
  123. * @param string $name
  124. * @param string $expected
  125. */
  126. public function testIsset(array $data, $name, $expected)
  127. {
  128. // Setup
  129. $response = new Response(200, [], \json_encode($data));
  130. $result = new Result($response);
  131. // Assert
  132. self::assertEquals($expected, isset($result->$name));
  133. }
  134. /**
  135. * @return array
  136. */
  137. public function issetData()
  138. {
  139. return [
  140. [
  141. ['key' => 'value'],
  142. 'key',
  143. true,
  144. ],
  145. [
  146. [],
  147. 'null',
  148. false,
  149. ],
  150. ];
  151. }
  152. }