1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace AlibabaCloud\Credentials;
- use Exception;
- use GuzzleHttp\Exception\RequestException;
- use GuzzleHttp\Handler\MockHandler;
- use GuzzleHttp\Psr7\Response;
- use Psr\Http\Message\RequestInterface;
- use Psr\Http\Message\ResponseInterface;
- /**
- * Trait MockTrait
- *
- * @package AlibabaCloud\Credentials
- */
- trait MockTrait
- {
- /**
- * @var array
- */
- private static $mockQueue = [];
- /**
- * @var MockHandler
- */
- private static $mock;
- /**
- * @param integer $status
- * @param array $headers
- * @param array|string|object $body
- */
- public static function mockResponse($status = 200, array $headers = [], $body = null)
- {
- if (is_array($body) || is_object($body)) {
- $body = json_encode($body);
- }
- self::$mockQueue[] = new Response($status, $headers, $body);
- self::createHandlerStack();
- }
- private static function createHandlerStack()
- {
- self::$mock = new MockHandler(self::$mockQueue);
- }
- /**
- * @param string $message
- * @param RequestInterface $request
- * @param ResponseInterface|null $response
- * @param Exception|null $previous
- * @param array $handlerContext
- */
- public static function mockRequestException(
- $message,
- RequestInterface $request,
- ResponseInterface $response = null,
- Exception $previous = null,
- array $handlerContext = []
- ) {
- self::$mockQueue[] = new RequestException(
- $message,
- $request,
- $response,
- $previous,
- $handlerContext
- );
- self::createHandlerStack();
- }
- /**
- * @return void
- */
- public static function cancelMock()
- {
- self::$mockQueue = [];
- self::$mock = null;
- }
- /**
- * @return bool
- */
- public static function hasMock()
- {
- return (bool)self::$mockQueue;
- }
- /**
- * @return MockHandler
- */
- public static function getMock()
- {
- return self::$mock;
- }
- }
|