ClientTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace Srmklive\PayPal\Tests\Unit;
  3. use GuzzleHttp\Client as HttpClient;
  4. use GuzzleHttp\Utils;
  5. use PHPUnit\Framework\Attributes\Test;
  6. use PHPUnit\Framework\TestCase;
  7. use Srmklive\PayPal\Tests\MockClientClasses;
  8. use Srmklive\PayPal\Tests\MockResponsePayloads;
  9. class ClientTest extends TestCase
  10. {
  11. use MockClientClasses;
  12. use MockResponsePayloads;
  13. #[Test]
  14. public function it_can_be_instantiated(): void
  15. {
  16. $client = new HttpClient();
  17. $this->assertInstanceOf(HttpClient::class, $client);
  18. }
  19. #[Test]
  20. public function it_can_get_access_token(): void
  21. {
  22. $expectedResponse = $this->mockAccessTokenResponse();
  23. $expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/oauth2/token?grant_type=client_credentials';
  24. $expectedParams = [
  25. 'headers' => [
  26. 'Accept' => 'application/json',
  27. 'Accept-Language' => 'en_US',
  28. ],
  29. 'auth' => ['username', 'password'],
  30. ];
  31. $mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams);
  32. $this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
  33. }
  34. }